如何將一個數據庫中的一個表復制到另一個數據庫的表中去
***種情況:將a數據庫.dbo.a表的數據追加到b數據庫.dbo.b表中 (條件:此時b數據庫中已創建好了b表)
inert into b數據庫.dbo.b表
select * from a數據庫.dbo.a表 [where 條件]
此T-SQL語句會有異常 僅當使用了列列表并且 IDENTITY_INSERT 為 ON 時,才能為表'b數據庫.dbo.b表'中的標識列指定顯式值。
原因:b數據庫.dbo.b表中某列別設置成自動增長(一般為主鍵ID)。
解決:把 * 變成 指定 [列名] ,把自動增長的那一列去掉。
第二種情況:將a數據庫.dbo.a表的數據復制到b數據庫.dbo.b表中 (條件:此時b數據庫中沒有創建b表或同名的表)
select * into b數據庫.dbo.b表 from a數據庫.dbo.a表 [where 條件]
執行完此語句后,b數據庫中將會創建和a數據庫.dbo.a表 一樣結構的b表。通過此語句創建的b表沒有主鍵。
1、同服務器 select * from 數據庫名.dbo.表名 where 條件
2、不同服務器
SELECT * FROM OpenRowset('MSDASQL', 'Driver=SQL Server;Server=服務器名(或IP);UID=sa;PWD=服務器數據庫密碼', 數據庫名.dbo.表 ) where 條件
SELECT *
FROM OPENROWSET('SQLOLEDB','服務器名(或IP)';'sa';'服務器數據庫密碼',
'查詢的sql語句')
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=服務器名(或IP);User ID=sa;Password=服務器數據庫密碼'
).數據庫名.dbo.表 where 條件