日期:2014-05-16  浏览次数:20588 次

{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 OrderList' 中的标识列插入显式值"}-异常处理方案

{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"}

A数据库执行语句:

问题描述:当在数据库表主键设计为 (Orderid ?int identity primary key),相对这个主键IDENTITY_INSERT默认设置为OFF,就是不能够显示插入主键id的值,例子如下:

insert?into?OrderList(id,OrderName)?values(4520,'电子传票订单')

执行上面语句会提示一个错误:

当?IDENTITY_INSERT?设置为?OFF?时,不能向表?'OrderList'?中的标识列插入显式值。
其中关于主键一条记录,当我们想把这条记录的id设置成我们自定义的4520时出现上面的错误,如果我们添加一些设置,修改方法如下:
set?identity_insert?OrderList?ON--打开
insert?into?OrderList(id,ordername,createdate)
values(
4520,'set',getdate())
set?identity_insert?OrderList?OFF--关闭
在执行这个插入语句时多了一个设置,该设置的语法是
--设置语法:

SET?IDENTITY_INSERT?[?database.[?owner.]?]?{?table?}?{?ON?
|?OFF?}?
允许将显式值插入表的标识列中

参数说明:
database:针对数据库
table:针对某张表

ON:允许插入显式值插入?标识列
OFF:不允许