sql >> Database >  >> RDS >> Sqlserver

Hoe controleer je of IDENTITY_INSERT is ingesteld op AAN of UIT in SQL Server?

Sinds SET IDENTITY_INSERT is sessiegevoelig, het wordt beheerd op bufferniveau zonder ergens op te slaan. Dit betekent dat we de IDENTITY_INSERT . niet hoeven te controleren status omdat we dit sleutelwoord nooit gebruiken in de huidige sessie.

Sorry, geen hulp hiervoor.

Goede vraag echter :)

Bron:Hier

Bijwerken Er zijn misschien manieren om dit te doen, ook te zien op de site die ik heb gelinkt, IMO, het is te veel moeite om nuttig te zijn.

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. Verschillen tussen INDEX, PRIMAIRE, UNIEKE, FULLTEXT in MySQL?

  2. Selecteer rij met meest recente datum per gebruiker

  3. SQL CREATE TABLE … AS SELECT-instructie

  4. Code dekkingsstatistieken