SQL执行set identity_insert on错误8106
执行setidentity_inserton错误!提示:表xxx没有标识属性,无法执行set操作...
执行set identity_insert on错误!提示:表xxx没有标识属性,无法执行set操作
展开
2个回答
展开全部
SET IDENTITY_INSERT [TABLENAME] {ON|OFF}从字面的意思看是用来在插入主键时设置主键状态的。这个主键指的是自增长的主键。
2.2使用方法
2.2.1首先,这条语句只对自增长的主键生效,经过在查询分析器上的试验,如果主键不为自增长类型会报如下错误:
服务器: 消息 8106,级别 16,状态 1,行 1
表 'test1' 没有标识属性。无法执行 SET 操作。
也是说他和自增长这个标识有关系。
2.2.2
其次,这条语句是用在“执行时或运行时,而不是分析时”。根据我的理解,我认为意思是,当存储过程或是sql语句执行时执行,而不是在建立表的分析时执
行。他的执行可以永久的改变状态,但是查看主键的状态时却不发生变化。虽然展示找不到他把这个状态存储在哪里,但我想,应该存储在系统表中。
2.2.3这是我在查询分析器上做了试验的几条语句:
2.2.3-1表test1,有非自增长字段id(int),v(char),执行insert into wangwh.dbo.test1 (id,v)values(1,'test'),结果为:
服务器: 消息 8106,级别 16,状态 1,行 1
表 'test1' 没有标识属性。无法执行 SET 操作。
2.2.3-2表test,有自增长字段id(int),v(char),将下边的语句分开执行。
//直接插入一条数据
insert into wangwh.dbo.test (id,v)values(1,'test')将提示
服务器: 消息 544,级别 16,状态 1,行 1
当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'test1' 中的标识列插入显式值。
//进行SET IDENTITY_INSERT 设置后,插入1条数据
set identity_insert wangwh.dbo.test1 on
insert into wangwh.dbo.test1 (id,v)values(1,'test')将提示
set identity_insert wangwh.dbo.test1 off
(所影响的行数为 1 行)
2.2.3-3如果将状态设置on的话将可以一直插入如果不希望一直能插入的话,还需要进行off的设置。因为一旦状态设置为on那么下次插入时就必须连同ID一起插入,否则就会报出如下错误:
服务器: 消息 545,级别 16,状态 1,行 1
当 IDENTITY_INSERT 设置为 ON 时,必须指定表 'test1' 中标识列的显式值。
2.2使用方法
2.2.1首先,这条语句只对自增长的主键生效,经过在查询分析器上的试验,如果主键不为自增长类型会报如下错误:
服务器: 消息 8106,级别 16,状态 1,行 1
表 'test1' 没有标识属性。无法执行 SET 操作。
也是说他和自增长这个标识有关系。
2.2.2
其次,这条语句是用在“执行时或运行时,而不是分析时”。根据我的理解,我认为意思是,当存储过程或是sql语句执行时执行,而不是在建立表的分析时执
行。他的执行可以永久的改变状态,但是查看主键的状态时却不发生变化。虽然展示找不到他把这个状态存储在哪里,但我想,应该存储在系统表中。
2.2.3这是我在查询分析器上做了试验的几条语句:
2.2.3-1表test1,有非自增长字段id(int),v(char),执行insert into wangwh.dbo.test1 (id,v)values(1,'test'),结果为:
服务器: 消息 8106,级别 16,状态 1,行 1
表 'test1' 没有标识属性。无法执行 SET 操作。
2.2.3-2表test,有自增长字段id(int),v(char),将下边的语句分开执行。
//直接插入一条数据
insert into wangwh.dbo.test (id,v)values(1,'test')将提示
服务器: 消息 544,级别 16,状态 1,行 1
当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'test1' 中的标识列插入显式值。
//进行SET IDENTITY_INSERT 设置后,插入1条数据
set identity_insert wangwh.dbo.test1 on
insert into wangwh.dbo.test1 (id,v)values(1,'test')将提示
set identity_insert wangwh.dbo.test1 off
(所影响的行数为 1 行)
2.2.3-3如果将状态设置on的话将可以一直插入如果不希望一直能插入的话,还需要进行off的设置。因为一旦状态设置为on那么下次插入时就必须连同ID一起插入,否则就会报出如下错误:
服务器: 消息 545,级别 16,状态 1,行 1
当 IDENTITY_INSERT 设置为 ON 时,必须指定表 'test1' 中标识列的显式值。
2013-11-25
展开全部
inserted的表中没有约束为 identity(1,1)的列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |