sql >> データベース >  >> RDS >> Sqlserver

SQL ServerでIDENTITY_INSERTがONまたはOFFに設定されているかどうかをどのように確認しますか?

    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
    


    1. SQLデータベースを簡単に復元–ステップバイステップガイド

    2. ScyllaDBトレンド–ユーザーがリアルタイムビッグデータデータベースを展開する方法

    3. Docker、Java Spring、JDBCを使用したMariaDBの使用開始

    4. トランザクションログの監視