在SQL Server中將表從一個數據庫複製到另外一個數據庫

我有一個名爲foo的數據庫和一個名爲bar的數據庫。 我在foo中有一個名爲tblFoobar的表,我想從數據庫foo移動(數據和全部)到數據庫欄。 執行此操做的SQL語句是什麼? 數據庫


#1樓

你能夠這樣走:(通常的例子) 服務器

insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB)
Select columnA, columnB from DeveloperDB.dbo.Customers

此外,若是您還須要生成列名以及insert子句,請使用: 架構

select (name + ',') as TableColumns from sys.columns 
where object_id = object_id('YourTableName')

複製結果並粘貼到查詢窗口以表示您的表列名稱,甚至這也將排除標識列: ide

select (name + ',') as TableColumns from sys.columns 
where object_id = object_id('YourTableName') and is_identity = 0

請記住,若是數據庫屬於同一位置,則複製行的腳本將起做用。 工具


你能夠嘗試這個。 spa

select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable>

若是兩個DB位於同一服務器中,則服務器名稱是可選的 code


#2樓

若是它只是一個表,那麼你須要作的就是 對象

  • 腳本表定義
  • 在另外一個數據庫中建立新表
  • 更新規則,索引,權限等
  • 導入數據(上面已經顯示了幾個插入示例)

您須要考慮的一件事是其餘更新,例如未來遷移其餘對象。 請注意,源表和目標表的名稱不一樣。 這意味着若是依賴於視圖,存儲過程等依賴對象,您還必須進行更改。 索引

使用一個或多個對象,能夠手動進行,無任何問題。 然而,當不單單是一些更新時,第三方比較工具很是方便。 如今我正在使用ApexSQL Diff進行架構遷移,可是你不能錯過任何其餘工具。 資源


#3樓

在SQL Server上? 並在同一個數據庫服務器上? 使用三部分命名。

INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar

這只是移動數據。 若是要移動表定義(以及權限和索引等其餘屬性),則必須執行其餘操做。


#4樓

這應該工做:

SELECT * 
INTO DestinationDB..MyDestinationTable 
FROM SourceDB..MySourceTable

不會複製constaints,默認值或索引。 建立的表將沒有彙集索引。

或者你能夠:

INSERT INTO DestinationDB..MyDestinationTable 
SELECT * FROM SourceDB..MySourceTable

若是目標表存在且爲空。


#5樓

  1. 在管理工做室中編寫create table腳本,在bar中運行該腳本以建立表。 (右鍵單擊對象資源管理器中的表,腳本表爲,建立到...)

  2. INSERT bar.[schema].table SELECT * FROM foo.[schema].table

相關文章
相關標籤/搜索