2010-02-25 142 views
2

我打算監視將使用SQL Server 2005/08數據庫的應用程序。它將監視使用SQL Server 2000數據庫的舊服務器。工具任務是從服務器中挑選數據做一些統計並將數據重新插入工具自己的數據庫中用於報告目的。在查詢SQL Server時需要幫助

我使用.NET(C#)作爲開發環境。

我真正想做的是實現存儲過程,它將從其他服務器中選擇監視數據並將其插入監視工具數據庫表中。

現在我想知道它是否有可能編寫像這樣的存儲過程?或者我必須使用一個連接從程序中的服務器中選擇數據,然後使用其他連接將其插入到工具數據庫中?

請讓我知道,如果你可以預見任何我應該知道的併發症。

另外一些信息/有用的指針(鏈接,書籍)將有所幫助。

感謝所有寶貴意見。

回答

4

您可以使用存儲過程(假設兩個服務器當然可以看到對方)使用Linked Servers來完成此操作。

設置完成後,您可以在服務器之間通過完全限定的對象名稱查詢:

SELECT * FROM [AnotherDbServer].[DatabaseName].[Schema].[TableName] 
2

AdaTheDev的答案是正確的,但這裏有一些額外的指針。

如果您調出特定列,請確保爲表名指定別名。否則,你會得到一個基本上有太多資格的錯誤(4是最大值)。此外,如果您鏈​​接到實例服務器,請確保在服務器名稱中使用括號[]。例如:

SELECT FiscalCalendar.Week, FiscalCalendar.Year 
FROM [LinkedServer\Instance].MyDatabase.dbo.FiscalCalendar FiscalCalendar