2010-11-11 59 views
0

比方說,我有一個表叫MessageLog選擇記錄,將它們插入到數據庫中不同的域上

MessageLog 
========== 
MessageLogID int (Identity) 
Message text 

我有同樣的表在不同的機器不同的數據庫建立在不同的領域:

Domain   Machine   SQLServername  Database  Table 
============================================================================= 
Production  ProdSql1       AppDB   MessageLog 
Dev    DevSql   Sql2k5    AppDB   MessageLog 

我可以從Production域內看到Dev域名,但我不能從Dev域內看到Production域。這意味着我將不得不在Production域中工作。

我怎樣寫,從Production選擇MessageLog記錄,將它們插入Dev查詢?

在僞SQL,我想是這樣的:

Select Message From AppDb.dbo.MessageLog 
Into Dev.DevSql\Sql2k5.AppDb.dbo.MessageLog 

回答

0

只要你有正確的網絡和防火牆設置,您將創建一個指向戴維和運行在生產中的鏈接服務器查詢您作爲例子

http://msdn.microsoft.com/en-us/library/ff772782.aspx

使你的開發環境,從生產可見不聽起來像一個偉大的想法,雖然,因爲沒有顯示數據的發展潛力在生產中。

如何將MessageLog錶轉儲到文件,將其複製到DEV可以訪問的地方,然後將其加載到開發服務器上?

+0

你提出了一些好的觀點,但我真的只是想看看是否有一個查詢,我可以在生產中的T-SQL中運行,以獲取信息到Dev中。這是一項一次性工作,我們的環境已經建立,不太可能改變。 – 2010-11-11 16:10:20

+0

@Ben - 在這種情況下,您只需要設置鏈接服務器。 – 2010-11-11 16:21:10

1

您希望在Production實例上設置一個Linked Server instance,該實例指向Development實例,在Development表上使用具有INSERT特權的開發實例上的帳戶。防火牆/網絡訪問提供...上使用四個名字符號鏈接的服務器實例

您參考表:

INSERT INTO development.appdb.dbo.messagelog 
SELECT message 
    FROM appdb.dbo.messagelog 

SELECT ... INTO ...語法TSQL/SQL Server要求該表不存在。

相關問題