3

私はこのようなことをしようとしています:

declare @myCurrentSeedValue int;
select @myCurrentSeedValue = DBCC CheckIdent('MyTable', NORESEED);

それは明らかに間違った構文です。これを達成する方法について何か提案はありますか?

私はこのようなことができることを知っています:

select @myCurrentSeedValue = IDENT_SEED('MyTable');

しかし、それに関する問題は、MSDN による IDENT_SEED 関数に関するものです。

DBCC CHECKIDENT を使用して ID 列の現在の値を変更しても、この関数によって返される値は変更されません。

DBCC CHECKIDENT を呼び出して ID 列を再シードする他のストアド プロシージャがあるため、これは問題になる可能性があります。そのため、実際には元のシードではなく現在のシードが必要です。

4

2 に答える 2

12

Ident_currentを使用すると、テーブル ID を更新するプロセスに関係なく、テーブルの現在の ID を取得できます。あらゆるセッション、あらゆるスコープで機能します。


declare @myCurrentSeedValue int;
select @myCurrentSeedValue = IDENT_CURRENT( 'MyTable' )
select @myCurrentSeedValue
于 2013-03-29T21:30:08.100 に答える