sql >> Databasteknik >  >> RDS >> Sqlserver

Hur använder man OUTPUT för att fånga nytt och gammalt ID?

Du kan inte använda traditionell INSERT för att mata ut icke infogade fält. Använd sammanfogning istället (varning:fungerar endast med databaskompatibilitet>=100):

MERGE
  #tempproduct AS t
USING(
  SELECT
      Name
      , ID
  FROM
    product) AS s
ON (1=0)  
WHEN NOT MATCHED   
  THEN INSERT (Name) VALUES (Name)
OUTPUT inserted.ID, s.ID INTO @OutputAttributesValues;

SELECT * FROM @OutputAttributesValues


  1. Åtgärda "Aritmetiskt spillfel vid konvertering av uttryck till datatyp int" i SQL Server

  2. Tar bort objekt från ListView och Database med OnItemClickListener

  3. Twitter-fel vid delning

  4. Lägg till månader till ett datum i SQLite