Как массово вставить в Sql - PullRequest
       34

Как массово вставить в Sql

2 голосов
/ 13 ноября 2011

У меня есть две одинаковые таблицы в двух базах данных. Person_Table1 в DB1 и Person_Table2 в DB2. Я хочу выполнить массовую вставку из Person_Table1 в DB1 в Person_Table2 в DB2.

Имена столбцов в обеих таблицах одинаковы. Количество столбцов в обеих таблицах равно и количество столбцов много. Как получить массовую вставку, например, следующий запрос:

insert into DB2.dbo.Person_Table2 (*) (SELECT * FROM DB1.dbo.Person_Table1 )

1 Ответ

1 голос
/ 13 ноября 2011

Я бы всегда использовал явные имена столбцов - просто чтобы быть очень понятным и безопасным при выполнении такой ВСТАВКИ:

INSERT INTO DB2.dbo.Person_Table2(Col1, Col2, ...., ColN) 
   SELECT Col1, Col2, ...., ColN
   FROM DB1.dbo.Person_Table1

Таким образом, вы также можете, например, заменить один столбец в целевой таблице, например,постоянное значение или значение функции SQL (например, GETDATE() или что-то еще)

INSERT INTO DB2.dbo.Person_Table2(Col1, Col2, ...., ColN, ModifyDate) 
   SELECT Col1, Col2, ...., ColN, GETDATE()
   FROM DB1.dbo.Person_Table1
...