您的位置: 旅游网 > 社会

结果系统报错为

发布时间:2019-10-09 19:11:17

09:05 来源:.sxywh :sunsun【纠错】人评论

A-A+ 怎么开淘宝店 站优化方法 创业如何获得投资 小米note顶配版评测 最新LOL活动

本文通过一个操作实例来说明SQL中主标识列IDENTITY的使用技巧。

要求:在 sql server 2005中,建立数据表book,在表book中设有标识列,标识种子为1000,现要从另一个相同结构的表book1中导入数据,两表结构定义语句如下:

create table book(书号 int identity(10001) not for identity primary key clustered书名 char(20) not null出版社 char(20) check (出版社 in ('高教''浙大''电子''中央')) 出版日期 datetime default (getdate())单价 numeric(72) check(单价0) 数量 smallint check(数量=0)总价 AS 单价*数量EMAIL varchar(20) check(EMAIL LIKE '%@%') create table book1(书号 int primary key clustered书名 char(20) not null出版社 char(20) check (出版社 in ('高教''浙大''电子''中央'))出版日期 datetime default (getdate())单价 numeric(72) check(单价0)数量 smallint check(数量=0)总价 AS 单价*数量EMAIL varchar(20) check(EMAIL LIKE '%@%') 用如下语句来导入数据:

insert into book select * from book1

结果,系统报错为:

当使用了列列表并且IDENTITY_INSERT 为ON 时,才能为表book中的标识列指定显式值。

问题1:SQL SERVER 2005中如何设置IDENTITY_INSERT的值为ON?

格式为:SET IDENTITY_INSERT TABLE_NAME ON/OFF

于是用下列语句

SET IDENTITY_INSERT book ON

Insert into book select * from book1

SET IDENTITY_INSERT book OFF

结果出错提示与上面相同。为什么已经设置了表book的IDENTITY_INSERT为ON还出错呢?

重新输入指定列名的的语句:

insert into book(书号书名) select 书号书名 from book2

结果:系统提示成功运行。Book2中的记录按记录号的顺序插入到表book中。

结论:

这说明在主表定义标识列且加选项not for replication时,表示当通过复制向表中插入数据时,不需要遵循IDENTITY属性要求。 在复制数据时,要保证主表的IDENTITY_INSERT的状态为ON,且复制数据时必须显示的表明字段名。

查看更多相似文章

广西治疗男科方法
云浮治疗白癜风医院
固原性病医院哪家好
广西治疗男科费用
云浮白斑疯医院
猜你会喜欢的
猜你会喜欢的