在项目开发中遇到这样一个问题:需要从另一个系统中导入数据到新开发的系统中,两个系统的SQL Server服务分别位于不同的SQL Server服务器上。
  我试着在新系统中写一个存储过程来实现这一功能,写了如下的的T-SQL命令来测试这个思路是否可行(在新系统的SQL Server服务器上的企业管理器中已经建立好了对另一个系统SQL Server服务器[test]的连接):
1Select * From [Test].[MyData].dbo.[User]
2--其中:
3--[Test]为另一系统的数据库服务器名
4--[MyData]为在那台服务器上的数据库名
5--[User]为表名
  执行后,系统报“在sysservers 中找不到服务器 'Test'。请执行sp_addlinkedserver 将该服务器添加到sysservers。”的错误,这样看来在多台SQL Server服务器上执行SQL命令是可行的,不过需要在执行SQL命令的SQL Server器上进行设置,于是赶紧查看关于sp_addlinkedserver 系统存储过程的资料,经过反复测试,在新系统的SQL Server服务器上运行以下SQL命令后,我终于可以在新系统的SQL Server上正常操作[Test]服务器上的数据了
1EXEC sp_addlinkedserver 
2   @server = 'Test'
3   @provider = 'MSDASQL',
4   @provstr = 'DRIVER={SQL Server};SERVER=Test;UID=sa;PWD=;'
5--@server是以后执行SQL命令时引用的服务器名,它可以任意命名,不一定需要与真实SQL Server服务器同名。
6--@provider请按资料表格中提供的参数给定。
7--@provstr数据库连接字,不用我多说了。
  注意:根据资料说明,对于SQL Server应该可以采用“SQLOLEDB”作为@provider,但由于我水平所限,没能试通,最后只好采用了上限办法来实现,如果有谁知道怎么能够实现,请一定告诉我一下,我在这先谢过了
posted on 2006-07-06 16:21  行与思  阅读(1939)  评论(2编辑  收藏  举报