手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >sqlsever为标识列指定显式值
sqlsever为标识列指定显式值
摘要:sqlsever为标识列指定显式值的问题,大多是大家在两个结构完全相同的表,由其中一个表插入另一个表中指定条件的数据,报如下错误:仅当使用了...

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数据库。

【sqlsever为标识列指定显式值】相关文章:

sql server 临时表 查找并删除的实现代码

sqlserver子查询报错

sqlserver 一张表两列都的值都相同处理

sqlserver 字符串分拆 语句

SqlServer批量清理指定数据库中所有数据

跪求sql server2012行转列方案

SQL Server口令 sql server安全性第1/2页

在SQL Server中修改字段类型和字段名称

mixer:sql词法分析器设计

sql server 2008安装失败的解决办法 彻底卸载老版本!

精品推荐
分类导航