sql >> Databáze >  >> RDS >> Sqlserver

Jak zkontrolujete, zda je IDENTITY_INSERT na serveru SQL nastaveno na ON nebo OFF?

Od SET IDENTITY_INSERT je citlivá na relace, je spravována na úrovni vyrovnávací paměti, aniž by se někde ukládala. To znamená, že nemusíme kontrolovat IDENTITY_INSERT stav, protože toto klíčové slovo v aktuální relaci nikdy nepoužíváme.

Je nám líto, s tím není žádná pomoc.

Ale skvělá otázka :)

Zdroj:zde

Aktualizovat Možná existují způsoby, jak toho dosáhnout, jak je také vidět na stránce, na kterou jsem odkazoval, IMO, je to příliš mnoho úsilí na to, aby to bylo užitečné.

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. Jak extrahovat rok a měsíc od data v PostgreSQL bez použití funkce to_char()?

  2. Nejčastější dotazy MySQL

  3. Získejte datový typ pole v příkazu select v ORACLE

  4. Top 3 tipy, které potřebujete vědět, abyste mohli psát rychlejší SQL pohledy