Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вмъкване в... Обединяване... Изберете (SQL сървър)

Номерът е да попълните таблицата с MERGE оператор вместо INSERT...SELECT . Това ви позволява да използвате стойности както от вмъкнатите, така и от изходните данни в изходната клауза:

MERGE INTO Table3 USING
(
    SELECT null as col2, 
           110 as col3, 
           Table1.ID as col4, 
           Table2.Column2 as col5,
           Table2.Id as col6
    FROM Table1
    JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
    JOIN Table2 on Table1Table2Link.Column2=Table2.ID
) AS s ON 1 = 0 -- Always not matched
WHEN NOT MATCHED THEN
INSERT (Column2, Column3, Column4, Column5)
VALUES (s.col2, s.col3, s.col4, s.col5)
OUTPUT Inserted.ID, s.col6
INTO @MyTableVar (insertedId, Table2Id); 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте TYPE_NAME(), за да получите името на тип данни в SQL Server

  2. Примери за преобразуване на „smalldatetime“ в „datetime“ в SQL Server (T-SQL)

  3. Как да промените колона от Null на Not Null в таблицата на SQL Server - SQL Server / T-SQL урок, част 52

  4. Най-популярните системи за управление на бази данни в света

  5. Как да използвате свойството IDENTITY() в SQL Server