1

テーブルにID列を再シードしたいのですが、現在使用中のデータベースにはありません。

これは機能します:

use database;
DBCC CHECKIDENT ('table', reseed, 0);

しかし、私はこのようなことをしたいと思います:

DBCC CHECKIDENT (database.[dbo].table, reseed, 0); -- works not
4

2 に答える 2

4
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列を再シードします。

于 2013-03-22T16:03:05.947 に答える
1

EXECを使用してUSEとCHECKIDENTを実行するのはどうですか?

EXEC('USE database;DBCC CHECKIDENT (''dbo.table'', reseed, 0);')
于 2013-03-22T16:05:37.253 に答える