我重新设置了像这样的标识列:
EXEC sp_MSforeachtable "DBCC CHECKIDENT ( '?', RESEED, 0)"
Run Code Online (Sandbox Code Playgroud)
如果表中没有标识,查询会抛出错误.但是我仍然需要为数据库中具有标识的所有表重新设置标识.(如果没有身份,不要抛出错误)
所有桌子都是空的吗?
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)