sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server:Är det möjligt att infoga i två tabeller samtidigt?

I ett påstående :Nej.

I en transaktion :Ja

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

Den goda nyheten är att ovanstående kod garanterat också är atomär , och kan skickas till servern från en klientapplikation med en sql-sträng i ett enda funktionsanrop som om det vore en sats. Du kan också applicera en trigger på en tabell för att få effekten av en enskild insättning. Men det är i slutändan fortfarande två påståenden och du vill förmodligen inte köra triggern för varje infoga.



  1. PL/pgSQL kontrollerar om en rad finns

  2. UniVers tips

  3. LIMIT nyckelord på MySQL med förberett uttalande

  4. Hur man kommer åt och uppdaterar Sqlite db-fil lagrad lokalt [tillgångsmapp] i projektfil med cordova