我计划监控将使用SQL Server 2005/08数据库的应用程序。它将监视使用SQL Server 2000数据库的旧服务器。工具任务是从服务器中挑选数据做一些统计,然后将数据插回工具自己的数据库中进行报告。
我使用.NET(C#)作为开发环境。
我真正想要做的是实现存储过程,它将从其他服务器中选择监控数据并将其插入监控工具数据库表。
现在我想知道是否有可能像这样编写存储过程?或者我必须使用一个连接从程序中的服务器中选择数据,然后使用另一个连接将其插入到工具数据库中?
如果您能预见到我应该注意的任何并发症,请告诉我。
另外一些信息性/有用的指针(链接,书籍)也会有所帮助。
感谢大家的宝贵意见。
答案 0 :(得分:4)
您可以使用存储过程(假设两个服务器当然可以看到对方),使用Linked Servers。
设置完成后,您可以通过完全限定对象名称来跨服务器进行查询:
SELECT * FROM [AnotherDbServer].[DatabaseName].[Schema].[TableName]
答案 1 :(得分:2)
AdaTheDev的回答是正确的,但这里有一些额外的指示。
如果您调出特定列,请确保为表名提供别名。否则你会因为基本上有太多资格而得到错误(4是最大值)。此外,如果您链接到实例化服务器,请确保在服务器名称中使用方括号[]。例如:
SELECT FiscalCalendar.Week, FiscalCalendar.Year
FROM [LinkedServer\Instance].MyDatabase.dbo.FiscalCalendar FiscalCalendar