【发布时间】:2011-04-22 01:33:31
【问题描述】:
我正准备在这个上扯掉我的头发。我对 MS SQL 还很陌生,在任何地方都没有看到类似的帖子。
当我尝试做这样的陈述时:
INSERT INTO qcRawMatTestCharacteristic
VALUES(NULL, 1,1,1,1,1,1,1,'','','', GETDATE(), 1)
我得到以下信息:
无法将值 NULL 插入 列“iRawMatTestCharacteristicId”, 桌子 'Intranet.dbo.qcRawMatTestCharacteristic'; 列不允许空值。插入 失败。
我理解错误,但 null 值适用于我的主字段,其数据类型为 int。
有什么想法吗!?
【问题讨论】:
-
好的,我应该澄清一下。我只想要一个自动递增的主键。在 MySQL 中,NULL 值会给我这种效果。如果我使用与上面相同的 INSERT 语句,请指定我的字段并省略主键。我得到了同样的错误。
-
@Nick:SQL Server 中的该列必须定义为
INT IDENTITY才能正常工作。关键是IDENTITY部分 - 你需要在你的 PK 列上定义它,否则它将不起作用 -
我现在明白了,伙计们。非常感谢。我知道关系数据库是如何工作的。但是你回答了我的 MS SQL 问题。 :)
-
@Nick:好的,很高兴我们能提供帮助。 SQL 在一定程度上是标准化的......
-
@Conrad 我知道你在我之前发帖,但我以为你在我之后更新了你的帖子。我看不到时间戳。我只是在开玩笑。
标签: sql sql-server database-design insert