专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

SQL2005中使用identity_insert向自动增量字段中写入内

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:05:19       共计:3596 浏览
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语句如下:
1 set identity_insert OLD_USER on
2 insert OLD_USER(userid,username,userpassword,LastLogintime) selectuserid,username,userpassword,LastLogintime from USER whereLastLogintime<'2010-01-01'
3 set identity_insert OLD_USER off
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)

二、直接向新表中插入一条指定ID的记录
这种情况下,这条指定的ID,新表中一定要没有才可以。假设表名OLD_USER表,结构也是userid(自动增量字段),username,userpassword,LastLogintime,使用的sql语句如下:
1 set identity_insert OLD_USER on
2 insert OLD_USER(userid,username,userpassword,LastLogintime)VALUES(7,'新用户','新密码','2012-04-09 08:30:30')
3 set identity_insert OLD_USER off
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
这句中的7就是指定的自动增量字段useid的值。

由于SQL2005新增加了这个功能,让分表就方便多了。 感谢wangsdong投稿    
如果你对上面的教程不理解,点击此处,发短信请教wangsdong
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:SQL Server游标的使用 | ·下一条:C#向Excel报表中插入图片的2种方法

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有