正文

SQL2005使用identity_insert向自动增量字段中写入内容2012-04-10 09:05:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wangsdong/53411.html

分享到:

SQL2005以前的数据库是不允许向自动增量字段中写入内容的,ACCESS也不行,但在SQL2005开始,就可以向自动增量字段写入内容了,需要使用SQL2005提供的identity_insert来实现。

功能:SQL2005中使用identity_insert来修改自动增量字段
开发:wangsdong
来源:www.aspbc.com
原创文章,转载请保留此信息。

一、复制旧表中的数量到新表中,保持ID不变
假设要将某一表中的数据复制到另一表中去,但要保持ID不变。这个要求主要用于数据库分表,如由于用户表中数据量大,需要将一些很久不登录的用户放到另外一张表中去存放,以减少经常活动的表,以达到登录速度快。假设用户表USER结构:userid(自动增量字段),username,userpassword,LastLogintime,分表是OLD_USER表,结构也是userid(自动增量字段),username,userpassword,LastLogintime,使用的sql语句如下:

set identity_insert OLD_USER on 
insert OLD_USER(userid,username,userpassword,LastLogintime) select userid,username,userpassword,LastLogintime from USER where LastLogintime<'2010-01-01'
set identity_insert OLD_USER off

二、直接向新表中插入一条指定ID的记录
这种情况下,这条指定的ID,新表中一定要没有才可以。假设表名OLD_USER表,结构也是userid(自动增量字段),username,userpassword,LastLogintime,使用的sql语句如下:
set identity_insert OLD_USER on 
insert OLD_USER(userid,username,userpassword,LastLogintime) VALUES(7,'新用户','新密码','2012-04-09 08:30:30')
set identity_insert OLD_USER off
这句中的7就是指定的自动增量字段useid的值。

阅读(2394) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册