sqlserver为标识列指定显式值
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数据库。
相关文章
SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
这篇文章主要介绍了SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法,需要的朋友可以参考下2015-01-01
简单实用SQL脚本Part SQLServer 2005 链接服务器
SQL Server 2005版本的SSMS中已经有了 服务器对象->链接服务器 的功能点,用户首先创建一个远程DB的链接对象,之后就可以像本地表一样执行表的DML了。2010-09-09
安装SQL2005提示 找不到任何SQL2005组件的问题解决方案
当我在安装SQL2005的时候出错了(SQL2005是企业版的)。由于第一次安装SQL2005,要求把VS2008的SQL服务关了,做了,安装完毕。2009-08-08
sql 2005不允许进行远程连接可能会导致此失败的解决方法
用vs.net2005连接sql server 2005 出现以下错误:在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。2008-04-04
SQL2008中SQL应用之-锁定(locking) 应用分析
锁定(Locking)是一个关系型数据库系统的常规和必要的一部分,它防止对相同数据作 并发更新 或在更新过程中查看数据, 从而保证被更新数据的完整性。它也能防止用户读取正在被修改的数据 。2011-06-06
win2003 Server配置SQL Server 2005远程连接的方法
这篇文章主要介绍了win2003 Server配置SQL Server 2005远程连接的方法,需要的朋友可以参考下2015-01-01
sqlserver 存储过程中的top+变量使用分析(downmoon)
sqlserver 存储过程中的top+变量使用分析(downmoon) ,需要的朋友可以参考下。2011-05-05


最新评论