Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak używać OUTPUT do przechwytywania nowego i starego ID?

Nie możesz użyć tradycyjnego INSERT do wyprowadzania niewstawionych pól.Zamiast tego użyj scalania (zastrzeżenie:działa tylko ze zgodnością bazy danych>=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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby wyodrębnienia roku z daty w SQL Server (T-SQL)

  2. Wykonywanie procedury składowanej przy użyciu Harmonogramu zadań systemu Windows

  3. SQL Express do produkcji?

  4. Jak uzyskać wartość pola wyboru z widoku siatki, gdy pole wyboru OnCheckedChanged

  5. Doświadczenie, kiedy używać OPTYMALIZUJ NA NIEZNANE