1. ホーム
  2. sql

[解決済み] SQL ServerでIDENTITY_INSERTがONまたはOFFに設定されているかどうかを確認するにはどうすればよいですか?

2023-06-01 01:32:14

質問

検索してみたのですが、これが出てくるスレッドは、質問を理解していない人が回答していることが多いようです。

次のような構文をとります。

SET IDENTITY_INSERT Table1 ON

もっとこう、どうやるんだ。

GET IDENTITY_INSERT Table1

この情報を得るために、データベースのデータや設定には一切手を加えたくないのですが。 ありがとうございます。

どのように解決するのですか?

では SET IDENTITY_INSERT はセッションセンシティブなので、どこかに保存することなく、バッファレベルで管理されます。つまり IDENTITY_INSERT の状態をチェックする必要がないことを意味します。

申し訳ありませんが、これには役に立ちません。

素晴らしい質問ですが :)

出典 ここで

更新 これを行う方法は、私がリンクしたサイトでも見られますが、IMO、それは有用であるためにあまりにも多くの努力です。

if

(select max(id) from MyTable) < (select max(id) from inserted)

--Then you may be inserting a record normally

BEGIN
    set @I = 1 --SQL wants something to happen in the "IF" side of an IF/ELSE
END

ELSE --You definitely have IDENTITY_INSERT on.  Done as ELSE instead of the other way around so that if there is no inserted table, it will run anyway


BEGIN
.... Code that shouldn't run with IDENTITY_INSERT on
END