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

SET IDENTITY_INSERT xyz ON のスコープは何ですか?

    これは、テーブルが一度に 1 つのテーブルに対してのみオプションを持つことができるセッション オプションですが、複数の異なるセッションが同じテーブルに対してそれを持つことができます (ただし、それが良いアイデアであるかどうかはわかりません!)

    (このオプションを設定する) 子バッチが終了すると、接続の設定が自動的に解除されるように見えます。

    CREATE TABLE Tst
    (C INT IDENTITY(1,1))
    
    EXEC('SET IDENTITY_INSERT Tst ON')
    INSERT INTO Tst(C) VALUES (1) /*Fails - Complains IDENTITY_INSERT is off*/
    
    SET IDENTITY_INSERT Tst ON
    EXEC('INSERT INTO Tst(C) VALUES (1)') /*Succeeds this way round*/
    SET IDENTITY_INSERT Tst OFF
    
    
    SET IDENTITY_INSERT Tst ON
    EXEC('SET IDENTITY_INSERT Tst ON; INSERT INTO Tst(C) VALUES (1);') /* Also succeeds like this*/
    


    1. pipのインストールが/usr/ bin / clangで失敗する:そのようなファイルやディレクトリはありません

    2. SQLの特定の行でnull以外の列を見つける方法は?

    3. Postgres psqlのタイムゾーンを設定するにはどうすればよいですか?

    4. MySQLはselectステートメントにループのある列を生成します