重新安装sql server标识列

use*_*076 4 sql-server-2008

我重新设置了像这样的标识列:

EXEC sp_MSforeachtable "DBCC CHECKIDENT ( '?', RESEED, 0)"
Run Code Online (Sandbox Code Playgroud)

如果表中没有标识,查询会抛出错误.但是我仍然需要为数据库中具有标识的所有表重新设置标识.(如果没有身份,不要抛出错误)

Aar*_*and 6

所有桌子都是空的吗?

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql = @sql + N'DBCC CHECKIDENT(''' 
    + QUOTENAME(OBJECT_SCHEMA_NAME([object_id]))
    + '.' + QUOTENAME(OBJECT_NAME([object_id])) 
    + ''', RESEED, 0);' + CHAR(13) + CHAR(10)
    FROM sys.columns
    WHERE is_identity = 1;

PRINT @sql;
-- EXEC sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)