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