仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'stulnfo'中的标识列指定显式值。
答案:2 悬赏:40 手机版
解决时间 2021-02-20 09:28
- 提问者网友:战皆罪
- 2021-02-19 11:18
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'stulnfo'中的标识列指定显式值。
最佳答案
- 五星知识达人网友:猎心人
- 2021-02-19 12:10
操作步骤:
首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
尝试在表中做以下操作:INSERT INTO products (id, product) VALUES(3, 'garden shovel')结果会导致错误:“当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'products' 中的标识列插入显式值。”
改用:SET IDENTITY_INSERT products ONINSERT INTO products (id, product) VALUES(1, 'garden shovel')返回正确。
建立另外一个表products2,尝试相同插入操作:CREATE TABLE products2 (id int IDENTITY PRIMARY KEY, product varchar(40))然后执行:SET IDENTITY_INSERT products2 ONINSERT INTO products2 (id, product) VALUES(1, 'garden shovel')导致错误:“表 'material.dbo.products' 的 IDENTITY_INSERT 已经为 ON。无法对表 'products2' 执行 SET 操作。”改为执行:SET IDENTITY_INSERT products OFFSET IDENTITY_INSERT products2 ONINSERT INTO products2 (id, product) VALUES(2, 'garden shovel')执行通过。
尝试以下操作:SET IDENTITY_INSERT products2 ONINSERT INTO products2 SELECt * FROM products导致错误:“仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'products2' 中为标识列指定显式值。”
改为:SET IDENTITY_INSERT products2 ONINSERT INTO products2 (id, product) SELECt * FROM products执行通过。
首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
尝试在表中做以下操作:INSERT INTO products (id, product) VALUES(3, 'garden shovel')结果会导致错误:“当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'products' 中的标识列插入显式值。”
改用:SET IDENTITY_INSERT products ONINSERT INTO products (id, product) VALUES(1, 'garden shovel')返回正确。
建立另外一个表products2,尝试相同插入操作:CREATE TABLE products2 (id int IDENTITY PRIMARY KEY, product varchar(40))然后执行:SET IDENTITY_INSERT products2 ONINSERT INTO products2 (id, product) VALUES(1, 'garden shovel')导致错误:“表 'material.dbo.products' 的 IDENTITY_INSERT 已经为 ON。无法对表 'products2' 执行 SET 操作。”改为执行:SET IDENTITY_INSERT products OFFSET IDENTITY_INSERT products2 ONINSERT INTO products2 (id, product) VALUES(2, 'garden shovel')执行通过。
尝试以下操作:SET IDENTITY_INSERT products2 ONINSERT INTO products2 SELECt * FROM products导致错误:“仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'products2' 中为标识列指定显式值。”
改为:SET IDENTITY_INSERT products2 ONINSERT INTO products2 (id, product) SELECt * FROM products执行通过。
全部回答
- 1楼网友:慢性怪人
- 2021-02-19 12:45
对的。
插入数据时,自增长列是系统自动处理,不需要你来指定数值,你也指定不了。只有将IDENTITY_INSERT 为 ON 时插入数据时,自增长列你才可以指定一个值
比如我有一个表PZ,有如下列XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY其中XH是自增长,正常插入数据时
insert PZ (ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY) VALUES(......)不需要指定XH列。如果将IDENTITY_INSERT打开
set IDENTITY_INSERT PZ ON
插入数据时就可以给XH列指定值
INSERT PZ (XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY) VALUES(指定表中没有的数值,24389,3,1524,1,'0109',0,0,'2011.1.29','JK')
关闭IDENTITY_INSERT
SET IDENTITY_INSERT PZ OFF
插入数据时,自增长列是系统自动处理,不需要你来指定数值,你也指定不了。只有将IDENTITY_INSERT 为 ON 时插入数据时,自增长列你才可以指定一个值
比如我有一个表PZ,有如下列XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY其中XH是自增长,正常插入数据时
insert PZ (ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY) VALUES(......)不需要指定XH列。如果将IDENTITY_INSERT打开
set IDENTITY_INSERT PZ ON
插入数据时就可以给XH列指定值
INSERT PZ (XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY) VALUES(指定表中没有的数值,24389,3,1524,1,'0109',0,0,'2011.1.29','JK')
关闭IDENTITY_INSERT
SET IDENTITY_INSERT PZ OFF
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯