sql >> Database >  >> RDS >> Sqlserver

Wat is het bereik van SET IDENTITY_INSERT xyz ON?

Het is een sessieoptie waarbij een tafel de optie slechts voor één tafel tegelijk kan hebben, maar meerdere verschillende sessies kunnen deze voor dezelfde tafel hebben (maar ik weet niet zeker of dat ooit een goed idee zou zijn!)

Wanneer een onderliggende batch is voltooid (die deze optie instelt), lijkt het alsof deze automatisch wordt uitgeschakeld voor de verbinding.

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. hoe gebruik je `charset` en `encoding` in `create_engine` van SQLAlchemy (om een ​​panda-dataframe te maken)?

  2. URL herschrijven met .htaccess dubbele mysql-vermeldingen maken

  3. SQLite geaggregeerde functies

  4. Hoe kunnen we ISNULL gebruiken voor alle kolomnamen in SQL Server 2008?