Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak sprawdzić, czy IDENTITY_INSERT jest ustawione na ON lub OFF w SQL Server?

Od SET IDENTITY_INSERT jest wrażliwy na sesję, jest zarządzany na poziomie bufora bez przechowywania gdzieś. Oznacza to, że nie musimy sprawdzać IDENTITY_INSERT status, ponieważ nigdy nie używamy tego słowa kluczowego w bieżącej sesji.

Przepraszamy, nie ma w tym pomocy.

Świetne pytanie :)

Źródło:tutaj

Aktualizacja Być może są sposoby, aby to zrobić, również w witrynie, do której połączyłem, IMO, to zbyt duży wysiłek, aby być użytecznym.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. datetime vs datetime2 w SQL Server:jaka jest różnica?

  2. SQL DEFAULT Ograniczenie do wstawiania kolumny z wartością domyślną do tabeli SQL Server

  3. Oblicz sumę bieżącą / bilans bieżący

  4. JSON_VALUE() Przykłady w SQL Server (T-SQL)

  5. Uzyskać wszystkie nazwy tabel w określonej bazie danych za pomocą zapytania SQL?