两种方法:
一种是用Truncate
TRUNCATE TABLE name可以删除表内所有值并重置标识值
二是用DBCC CHECKIDENT
DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,但如果表内有数据,则重设的值如果小于最大值可能会有问题,这时可以用 dbcc checkident("bc_pos",reseed)即可自动重设值。
070805更新:VB的函数
''重置表的自动编号(标识列)的初始值
'' 正确 返回 0
'' 错误 返回 -1
Public Function reGenID(ByVal Tbl As String, Optional ByVal IDFld As String) As Integer
Dim SQL As String, ret
On Error Resume Next
Conn.BeginTrans
SQL = "DBCC CHECKIDENT (" & Tbl & ", RESEED, 0)"
Conn.Execute SQL
SQL = "DBCC CHECKIDENT (" & Tbl & ", RESEED)" ''进行修复,如果表中还有数据,则修复为正确的值!
Conn.Execute SQL
If Err.Number = 0 Then
Conn.CommitTrans
ret = 0
Else
Conn.RollbackTrans
ret = -1
End If
Err.Clear
On Error GoTo 0
reGenID = ret
End Function

本文介绍两种重置SQL标识符的方法:使用TRUNCATE TABLE清空表并重置标识值;使用DBCC CHECKIDENT手动调整标识起始值,包含VB函数实现。
844

被折叠的 条评论
为什么被折叠?



