sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server:Er det muligt at indsætte i to tabeller på samme tid?

I én erklæring :Nej.

I én transaktion :Ja

BEGIN TRANSACTION
   DECLARE @DataID int;
   INSERT INTO DataTable (Column1 ...) VALUES (....);
   SELECT @DataID = scope_identity();
   INSERT INTO LinkTable VALUES (@ObjectID, @DataID);
COMMIT

Den gode nyhed er, at ovenstående kode med garanti også er atomisk , og kan sendes til serveren fra en klientapplikation med én sql-streng i et enkelt funktionskald, som om det var én sætning. Du kan også anvende en udløser på én tabel for at få effekten af ​​en enkelt indsats. Det er dog i sidste ende stadig to udsagn, og du vil sandsynligvis ikke køre triggeren for hver indsætte.



  1. SQL-forespørgselskolonnen findes ikke fejl

  2. postgresql-sekvens nextval i skema

  3. Oracle ODP.NET version agnostisk alternativ

  4. Generer et resultatsæt af stigende datoer i TSQL