exec sp_addlinkedserver @ServerName,N'SQL Server'
EXEC sp_addlinkedsrvlogin @ServerName, 'false', NULL, @UserName, @Password你最好使用N'string'那样的形式,毕竟采用unicode的方式会好一点
这个方面我做过,应该还算了解
EXEC sp_addlinkedsrvlogin @ServerName, 'false', NULL, @UserName, @Password你最好使用N'string'那样的形式,毕竟采用unicode的方式会好一点
这个方面我做过,应该还算了解
解决方案 »
- 族谱中已知一辈份id求求其族谱树直系上辈及小辈
- 关于对数据表名的问题
- 在Sql中,对添加一条数据时:insert into 和 addnew 这两者的区别是什么?
- 触发器的 insert数据竟然会变
- 把一个大表,分成许多小表 提示错误,各位请帮忙
- 问一个比较复杂的存储过程问题
- 在我把access转换成了sql server数据库之后,遇到了几个这样的问题?
- 在win 2000 pro中的 sql server 2000 開發版不能連接其它的sql server 嗎?
- 关于表的设计--象chinaren.com中班级管理员有批准的能力
- SQL Server 7.0当检索大量数据的时候,会好慢。
- 200求救:解决System.Data.SqlClient.SqlException: SQL Server 不存在或访问被拒绝。
- 在存储过程中用sp_addlinkedserver?在线等待立即给分
EXEC sp_addlinkedsrvlogin @ServerName, 'false', NULL, @UserName, @Password你最好使用N'string'那样的形式,毕竟采用unicode的方式会好一点
这个方面我做过,应该还算了解
GO
EXEC sp_addlinkedserver
'server2',
N'SQL Server'
GOEXEC sp_addlinkedsrvlogin 'server2', 'false', NULL, 'Sa', 'pass'
GOSELECT * FROM server2.tools.dbo.tb_ciq
GO
EXEC sp_addlinkedserver
'server2',
N'SQL Server'
GOEXEC sp_addlinkedsrvlogin 'server2', 'false', NULL, 'Sa', 'pass'
GOSELECT * FROM server2.tools.dbo.tb_ciq
sp_addlinkedserver
'Remote_Server',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=DEV-DC ;UID=sa ;PWD=sqladmin;'
GO
转换成一个长的字符串,然后在EXEC里执行。如果还有问题,你就只能手工建立链接服务器了。
'Test', --名称
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
GO
-------以上为添加连接服务器exec sp_addlinkedsrvlogin 'test','false','sa','sa',''
那就不要加上gogo是代表一个批处理结束,如果加上它,则表明你的存储过程只包含
CREATE PROCEDURE GetDepartMentData121
AS
--增加连接服务器
EXEC sp_addlinkedserver
'Remote_Server',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=DEV-DC ;UID=sa ;PWD=sqladmin;'
EXEC sp_addlinkedsrvlogin 'Remote_Server','false' ,NULL,'sa','sqladmin'
GO
----------------------------------------------------------------
后面的部分已经不属于存储过程 --这里执行数据导入操作
exec sp_droplinkedsrvlogin 'Remote_Server',null
EXEC sp_dropserver 'Remote_Server'
按照我理解的意思,你应该删除go
'Remote_Server',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=DEV-DC ;UID=sa ;PWD=sqladmin;'
EXEC sp_addlinkedsrvlogin 'Remote_Server','false' ,NULL,'sa','sqladmin'
最好不要在stored procedure中写,你可以写一个*.SQL的脚本,然后通过ISQL来执行。
集中到总部服务器上
总部服务器上表中存放着每个机器名和用户名密码
我想循环执行一个存储过程把数据导入总部的机器
做个JOB存储过程要每个周一自动运行一下
create proc p_merg
as
declare @srvname varchar(250),@username varchar(250),@pwd varchar(100)--定义游标,取得各远程服务器的信息
declare #tb cursor for select 服务器名,用户名,密码 from 保存远程信息的表
open #tb
fetch next from #tb into @srvname,@username,@pwd
while @@fetch_status=0
begin
--创建链接服务器
exec sp_addlinkedserver 'Link_server','','SQLOLEDB',@srvname
exec sp_addlinkedsrvlogin 'Link_server','false',null,@username,@pwd --数据导入处理,根据你的情况写
insert into 表 select * from Link_server.数据库名..表名 --数据处理完成后删除链接服务器
exec sp_dropserver 'Link_server','droplogins'
fetch next from #tb into @srvname,@username,@pwd
end
close #tb
deallocate #tbgo
创建一个JOB,设置每周一执行,JOB的执行语句如下:exec p_merg