相关疑难解决方法(0)

SQL Server,不能将null插入主键字段?

我准备把这头发撕掉了.我对MS SQL很新,并且在任何地方都没有看过类似的帖子.

当我尝试做这样的声明时:

INSERT INTO qcRawMatTestCharacteristic 
VALUES(NULL, 1,1,1,1,1,1,1,'','','', GETDATE(), 1)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

无法将值NULL插入列'iRawMatTestCharacteristicId',表'Intranet.dbo.qcRawMatTestCharacteristic'; 列不允许空值.INSERT失败.

我理解错误,但null值是我的主要字段与int数据类型.

有任何想法吗!?

sql sql-server database-design insert

18
推荐指数
2
解决办法
6万
查看次数

为什么在TSQL中使用"not null primary key"?

我在博客,文章,书籍,论坛,SO中等在TSQL中创建表的脚本中经常看到"not null primary key".

例如,如果要搜索"非空"NEAR"主键""sql server",BING会给出630,000个结果((仅用英语):http://www.bing.com/search? q =%22not + null%
22 + NEAR +%22primary +密钥%22 +%22sql +服务器%22&去=&形式= QBRE&FILT = LF

我总是认为"NOT NULL"是PRIMARY KEY定义不可分割的一部分,至少在SQL Server中是这样.
我尝试在SQL Server中使用和不使用"NOT NULL"的主键创建表,但无法掌握可能的差异.

为什么即使在快速(简短)插图中,所有人都使用"NOT NULL"来创建主键?


更新:
NULL如何识别任何内容或是唯一的(以及如果允许多个NULL,则阻止多个NULL)?它是未指定的,缺失的,不适用的值

我的问题也暗示了子问题:
如果为PK定义"NOT NULL",为什么不指定UNIQUE?
PK的定义是什么?它是UNIQUE CONSTRAINT + NOT NULL还是UNIQUE INDEX(那么为什么NOT NULL)?
Plz给我链接到msdn docs.

Update2: @Damien_The_Unbeliever

为什么不是没有"NOT NULL"的同义词?

CREATE TABLE T3 
(
    PK int -- NOT NULL commented out
    , nonPK int -- to double-check my sanity 
    , constraint PK_vgv8 PRIMARY KEY (PK) on [PRIMARY]
) 
Run Code Online (Sandbox Code Playgroud)

仍然不允许NULL给出:


  • Microsoft …

t-sql sql-server database-design primary-key

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

database-design ×2

sql-server ×2

insert ×1

primary-key ×1

sql ×1

t-sql ×1