我在兩個數據庫中有兩個類似的表。 DB1中的Person_Table1和DB2中的Person_Table2。 我想從DB1中的Person_Table1批量插入到DB2上的Person_Table2。如何在Sql中批量插入
兩個表格中的列名稱是相似的。兩個表中的列數相等也列數很多。怎樣纔可以有一個批量插入像休耕查詢:
insert into DB2.dbo.Person_Table2 (*) (SELECT * FROM DB1.dbo.Person_Table1)
我在兩個數據庫中有兩個類似的表。 DB1中的Person_Table1和DB2中的Person_Table2。 我想從DB1中的Person_Table1批量插入到DB2上的Person_Table2。如何在Sql中批量插入
兩個表格中的列名稱是相似的。兩個表中的列數相等也列數很多。怎樣纔可以有一個批量插入像休耕查詢:
insert into DB2.dbo.Person_Table2 (*) (SELECT * FROM DB1.dbo.Person_Table1)
我總是使用明確的列名 - 只是爲了做這樣一個INSERT時,可以很清楚又安全:
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
你有什麼是接近的,但你只需要指定插入列進名單,以及選擇。 IE 插入DB2.dbo.Person_Table2 ( \t名字 \t,姓 \t,中間名 ) SELECT \t名字 \t,姓 \t,中間名 FROM DB1.dbo.Person_Table1 –
@Hiawatha分櫱我知道它,但我的列數很多,我想從選擇使用*也爲許多表做這個 – Ehsan
你不能使用*,因爲表定義可能不匹配加上它是壞習慣進入。可能存在各種其他問題,如移動身份值或來自一個數據庫的外鍵約束不匹配於其他問題。列出列名是正確的方法。 –