sql-server - 在其他数据库中重新设定标识列(不在当前正在使用的数据库中)

标签 sql-server sql-server-2008

我想在表中重新设定标识列的种子,但不在当前使用的数据库中重新设定种子。

这有效:

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/

相关文章:

C# SMO 数据库不记录创建

SQL删除不在的地方

SQL Server - 从临时表复制数据

sql - 仅按字符串的数字部分排序

sql-server-2008 - SQL Server 2008 中的压缩数据库备份

sql-server - 如果我无权访问所有数据库,SSMS 2008 中的对象浏览器将不起作用

sql - SQL WHERE 子句中的 IF 语句

SQL-计算所有存储过程中特定单词的出现次数

c# - C#中如何使用SqlDataAdapter更新多行

c# - SQL Server 存储过程的性能问题