任何人都可以告诉我表创建时的指令IDENTITY NOT NULL是否是冗余的?我的意思是,通过消息来判断
DEFAULT或NULL不允许作为显式标识值.
我会说,声明为IDENTITY的任何列都隐式也被声明为NOT NULL,但我想确保.任何人都可以确认吗?
非常感谢你.
解决方法
sql Server自动添加NOT NULL约束到标识列,尽管他在创建表时没有说明
请考虑下表脚本
create table test(id int identity(1,1),name varchar(1000))
现在从Management Studio生成表的脚本.它生成脚本为
CREATE TABLE [dbo].[test]( [id] [int] IDENTITY(1,1) NOT NULL,[name] [varchar](1000) NULL ) ON [PRIMARY]
Eventhough NOT NULL约束未在表脚本中指定,默认情况下会添加.标识列永远不会为空.所以NOT NULL约束是默认的