【sqlserver】数据违反唯一约束/非空约束 插入报错规则测试

CREATE TABLE testbzm(
[INNID] bigint  NOT NULL  ,
[NAME] varchar(50) NOT NULL  ,
[URL] varchar(100) NOT NULL
)   
ALTER TABLE testbzm ADD CONSTRAINT testbzm$BPK_AK_Key UNIQUE NONCLUSTERED(INNID,NAME) WITH(ONLINE=ON,FillFactor=90)

insert into testbzm (INNID,name,url) values(1,'HELLO','www')

--同时出现
insert into testbzm (INNID,name,url) values(1,'HELLO',NULL)
--Cannot insert the value NULL into column 'URL', table 'njtestdb.dbo.testbzm'; column does not allow nulls. INSERT fails.

--先出现违反空约束
insert into testbzm (INNID,name,url) values(2,'TEMP','www'),(3,'TEST',NULL),(1,'HELLO','www') 
--Cannot insert the value NULL into column 'URL', table 'njtestdb.dbo.testbzm'; column does not allow nulls. INSERT fails.

--先出现违反唯一约束
insert into testbzm (INNID,name,url) values(2,'TEMP','www'),(1,'HELLO','www'),(3,'TEST',NULL)
--Violation of UNIQUE KEY constraint 'testbzm$BPK_AK_Key'. Cannot insert duplicate key in object 'dbo.testbzm'. The duplicate key value is (1, HELLO).

drop table testbzm

/*
结论:
按顺序插入,先遇到违反对应约束的行报对应的错。若一行同时违反唯一约束和非空约束,先报非空约束的错误。
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值