簡體   English   中英

使用sqlcmd將數據從SQL Server 2008移動到遠程SQL Server 2000

[英]Moving data from SQL Server 2008 to remote SQL Server 2000, using sqlcmd

設置:
我有兩台不同的計算機,一台使用MS SQL Server 2008作為主機,另一台使用MS SQL Server2000。新生成的數據存儲在主服務器(2008)上的特定表中。

問題:
我的主計算機的存儲空間有限,而我的次要計算機具有較舊的SQL版本(2000),則沒有這種限制。

可能的解決方案:
至少作為一個臨時解決方案,我可以嘗試使用Windows Task Scheduler運行的sqlcmd,每天將一些數據從主機移動到輔助計算機。
我的數據的最大部分存儲在單個表中,因此其想法是從主服務器上的表中“剪切”它們,並將其附加到輔助服務器上的“備份/倉庫/存儲”表中。

到目前為止我嘗試過的是:
到目前為止,至少在使用sqlcmd之前,我無法同時從主服務器同時連接到兩台服務器。 sqlcmd可以同時創建的連接是否有限制?

其他可能的方式:
有針對這種情況的建議做法嗎? 編寫一個vbs腳本從主服務器導出並導入到輔助服務器是個好主意嗎?

歡迎所有更正和建議。 並感謝您的寶貴時間。

首先,鏈接服務器。 從您要插入到的服務器中,運行以下SQL(使用任何您想通過...運行SQL的工具... SQL Server Management Studio或SQLCMD或OSQL或其他工具):

EXEC sp_addlinkedServer N'remoteSqlServer\Instance', N'SQL Server'
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'remoteSqlServer\Instance', @useself = 'FALSE', @rmtuser = N'user', @rmtpassword = N'password'

將“ remoteSqlServer \\ Instance”替換為要從中復制數據的SQL Server的實際主機名\\實例。 還要用該服務器的適當登錄憑據替換“用戶”和“密碼”。

完成之后,您可以在此服務器上(包括SQLCMD在內的任何位置)執行如下所示的SQL:

INSERT INTO [LocalTable]
SELECT * FROM [remoteSqlServer\Instance].[DatabaseName].[schema].[TableName]

再次,這只是一個示例...您將用適合您的源數據庫和目標數據庫的值替換所有這些值(方括號中的所有內容)。 例如,它可能看起來像這樣:

INSERT INTO [HistoricalData]
SELECT * FROM [DBServer\SQL2008].[ProductionDatabase].[dbo].[CurrentData]

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM