DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1])
上述语句将把指定表的种子值强制重设为1。然而,如果你不想将种子重设为1,你可以用你想用的种子值替代第三个参数。如果你想知道当前的种子,而不是想重设标识种子,这时你就要用NORESEED,而不用再去设置第三个参数。
今天在项目中遇到一个问题,想在存储过程中将查询出来的数据放到一个临时表中,不想create table(这人懒drop table #tempSELECT id = IDENTITY(int,1,1),* INTO #TEMP FROM myTableselect * from #temp说明:id = IDENTITY(int,1,1),这句建立自增列的。其他的也不用多说了!^_^参考资料:SQL Server中,经常会用到Identity标识列,这种自增长的字段 *** 作起来的确是比较方便。但它有时还会带来一些麻烦。示例一:当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。SET IDENTITY_INSERT [TABLE] [ON|OFF]允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT *** 作时手工指定插入到标识列中的编号,同时必须在 *** 作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完成INSERT *** 作。示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们就要用到:DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1])将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。可以,各种数据库一般的有随机函数,你把?部分替换成随机函数就可以了,各种数据库不一样例如oracle可以写成update
tabel
set
moods=cast(dbms_random.value*200+1
as
integer)
where
ID
between
1
and
1000
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)