在项目开发中遇到这样一个问题:需要从另一个系统中导入数据到新开发的系统中,两个系统的SQL Server服务分别位于不同的SQL Server服务器上。
我试着在新系统中写一个存储过程来实现这一功能,写了如下的的T-SQL命令来测试这个思路是否可行(在新系统的SQL Server服务器上的企业管理器中已经建立好了对另一个系统SQL Server服务器[test]的连接):
。
。
我试着在新系统中写一个存储过程来实现这一功能,写了如下的的T-SQL命令来测试这个思路是否可行(在新系统的SQL Server服务器上的企业管理器中已经建立好了对另一个系统SQL Server服务器[test]的连接):
1
Select * 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]服务器上的数据了
2

3

4

5


1
EXEC 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,但由于我水平所限,没能试通,最后只好采用了上限办法来实现,如果有谁知道怎么能够实现,请一定告诉我一下,我在这先谢过了
2

3

4

5

6

7

