我想在表中重新设定标识列的种子,但不在当前使用的数据库中重新设定种子。
这有效:
use database;
DBCC CHECKIDENT ('table', reseed, 0);
但是,我想做这样的事情:
DBCC CHECKIDENT (database.[dbo].table, reseed, 0); -- works not
最佳答案
EXEC database.sys.sp_executesql N'DBCC CHECKIDENT(N''dbo.table'', reseed, 0);';
或者甚至:
DECLARE @t nvarchar(513) = N'dbo.table';
EXEC database.sys.sp_executesql
N'DBCC CHECKIDENT(@t, reseed, 0);',
N'@t nvarchar(513)', @t;
此外,如果表为空并且没有任何 FK 引用或其他限制,您可以使用...更轻松地完成此操作
TRUNCATE TABLE database.dbo.table;
...这恰好也重新设定了 IDENTITY
列。
关于sql-server - 在其他数据库中重新设定标识列(不在当前正在使用的数据库中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15574757/