Nim*_*van 33 t-sql sql-server table-variable
我有一个T-SQL 表变量(不是表),它有一个自动递增的标识列.我想清除此变量中的所有数据并将标识列值重置为1.如何才能完成此操作?
Ste*_*ton 34
截断表将转储所有数据,并重置标识种子.
否则,您可以使用此调用重置身份,同时保留任何数据:
DBCC CHECKIDENT (yourtableName, reseed, @NewStartSeedValue)
Run Code Online (Sandbox Code Playgroud)
Jos*_*sef 34
如果您正在使用表变量,则无法执行此操作.如果它是一个表,你可以截断它或使用它DBCC CHECKIDENT.但是,如果必须使用表变量,则必须使用标识列以外的其他内容.或者,更准确地说,在表变量中使用标识列,但输出使用ROWNUMBER:
DECLARE @t table (pkint int IDENTITY(1,1), somevalue nvarchar(50))
INSERT INTO @t (somevalue) VALUES( 'one')
INSERT INTO @t (somevalue) VALUES('twp')
INSERT INTO @t (somevalue) VALUES('three')
SELECT row_number() OVER (ORDER BY pkint), somevalue FROM @t
DELETE FROM @t
INSERT INTO @t (somevalue) VALUES('four')
SELECT row_number() OVER (ORDER BY pkint), somevalue FROM @t
Run Code Online (Sandbox Code Playgroud)
这是表格变量的最佳选择.
| 归档时间: |
|
| 查看次数: |
63688 次 |
| 最近记录: |