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

Jak používat klauzuli OUTPUT SQL Server pro aktualizaci

Vyzkoušejte něco takového, stále musíte použít tabulku temp, ale není to špatné čtení a práci to udělá.

CREATE TABLE #tmp
(
    tmpID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
    xmlData VARCHAR(255),
    EntityId INT
)
DECLARE @t2 TABLE
(
    tmpID INT,
    EntityId INT
)

MERGE dbo.EntityMaster AS EM
USING
(
    SELECT tmpID,
        xmlData,
        EntityId
    FROM #tmp
) AS X
    ON EM.EntityId = X.EntityId
WHEN NOT MATCHED THEN
    INSERT (EntityType)
    VALUES (X.xmlData)
OUTPUT X.tmpID, INSERTED.EntityId
INTO @t2 (tmpID, EntityId);

UPDATE T
SET EntityId = T2.EntityId
FROM @t2 T2
INNER JOIN #tmp T
    ON T2.tmpID = T.tmpID



  1. Jak provést tlačítko Odeslat, odstranit a aktualizovat ve stejném formuláři, php

  2. Ukládání obrázků v souborovém systému jako soubory nebo v poli databáze BLOB jako binární soubory

  3. chyba železničních serverů? (kolejnice 3) v oknech

  4. Co je PostgreSQL?