sqlsever为标识列指定显式值
程序员文章站
2023-11-09 17:09:10
sqlsever为标识列指定显式值的问题,大多是大家在两个结构完全相同的表,由其中一个表插入另一个表中指定条件的数据,报如下错误: 仅当使用了列列表并且 identity_...
sqlsever为标识列指定显式值的问题,大多是大家在两个结构完全相同的表,由其中一个表插入另一个表中指定条件的数据,报如下错误:
仅当使用了列列表并且 identity_insert 为 on 时,才能为表'*'中的标识列指定显式值。
在网上找到了解决方案,亲自试过,可以解决。
一、问题详述如下:
系统:windows2003
数据库:2005
数据库实例:wzgl2004 和wzgl2003,这两个实例都有表kc
执行语句
insert into wzgl2004.dbo.kc select * from wzgl2003.dbo.kc
就有报错信息:
"仅当使用了列的列表,并且 identity_insert 为 on 时,才能在表 'wzgl2004.dbo.kc ' 中为标识列指定显式值。"
二、解决方法:
set identity_insert test on
insert into wzgl2004.dbo.kc(id,name) select (id,name) from wzgl2003.dbo.kc
set identity_insert test off
三、set identity_insert的帮助知识
1、set identity_insert :允许将显式值插入表的标识列中。
2、语法
set identity_insert [ database.[ owner.] ] { table } { on | off }
参数
database
是指定的表所驻留的数据库名称。
owner
是表所有者的名称。
table
是含有标识列的表名。
3、附加:任何时候,会话中只有一个表的 identity_insert 属性可以设置为 on。如果某个表已将此属性设置为 on,并且为另一个表发出了 set identity_insert on 语句,则 microsoft® sql server™ 返回一个错误信息,指出 set identity_insert 已设置为 on 并报告此属性已设置为 on 的表。 如果插入值大于表的当前标识值,则 sql server 自动将新插入值作为当前标识值使用。
set identity_insert 的设置是在执行或运行时设置,而不是在分析时设置。
sqlsever为标识列指定显式值总结到此结束,如有疑问请联系我们www.cncnc.com.cn,中国信息港为你提供高效安全的sql数据库。
仅当使用了列列表并且 identity_insert 为 on 时,才能为表'*'中的标识列指定显式值。
在网上找到了解决方案,亲自试过,可以解决。
一、问题详述如下:
系统:windows2003
数据库:2005
数据库实例:wzgl2004 和wzgl2003,这两个实例都有表kc
执行语句
insert into wzgl2004.dbo.kc select * from wzgl2003.dbo.kc
就有报错信息:
"仅当使用了列的列表,并且 identity_insert 为 on 时,才能在表 'wzgl2004.dbo.kc ' 中为标识列指定显式值。"
二、解决方法:
复制代码 代码如下:
set identity_insert test on
insert into wzgl2004.dbo.kc(id,name) select (id,name) from wzgl2003.dbo.kc
set identity_insert test off
三、set identity_insert的帮助知识
1、set identity_insert :允许将显式值插入表的标识列中。
2、语法
set identity_insert [ database.[ owner.] ] { table } { on | off }
参数
database
是指定的表所驻留的数据库名称。
owner
是表所有者的名称。
table
是含有标识列的表名。
3、附加:任何时候,会话中只有一个表的 identity_insert 属性可以设置为 on。如果某个表已将此属性设置为 on,并且为另一个表发出了 set identity_insert on 语句,则 microsoft® sql server™ 返回一个错误信息,指出 set identity_insert 已设置为 on 并报告此属性已设置为 on 的表。 如果插入值大于表的当前标识值,则 sql server 自动将新插入值作为当前标识值使用。
set identity_insert 的设置是在执行或运行时设置,而不是在分析时设置。
sqlsever为标识列指定显式值总结到此结束,如有疑问请联系我们www.cncnc.com.cn,中国信息港为你提供高效安全的sql数据库。