当前位置:文档之家› sqlserver数据库网络连接测试方法

sqlserver数据库网络连接测试方法

关于sql server 数据库的分布式网络连接测试的处理方法,该存储过程把安装有sql server的数据库服务器在进行分布管理时提供数据库服务器的网络连接测试和建立远程服务连接,方便在分布式网络中处理各个独立服务器之间的数据库访问连接问题。希望能够为大家在做这方面的设计时提供一个解决方法。

--create proc p_process
--as


--若要用 sp_configure 配置高级选项,必须首先在将 show advanced options 选项设置为 1 的情况下运行 sp_configure,然后运行 RECONFIGURE:
--sp_configure 'show advanced options', 1;--查询
--GO
--RECONFIGURE;
--GO
--sp_configure 'Ole Automation Procedures', 1;--打开ole权限
--GO
--RECONFIGURE;
--GO
--sp_configure 'remote login timeout', 20;--设置登录时间
--GO
--RECONFIGURE;
--GO

--测试数据库服务器连接是否成功,不成功则退出-----------------------------------------------------------------------
declare @ServIP varchar(20), --服务器IP
@SrvID int, --服务器ID
@hr int, --执行语句返回值
@Error int --错误返回值(999:存储过程或触发器错误;9999:视图错误)
declare @ServerName sysname,--链接服务器名称
@User varchar(10), --数据库登录用户名
@pwd varchar(20), --数据库登录密码
@SQL_str varchar(2000) --sql操作语句
set @ServerName='srv1'
set @ServIP='192.168.1.141'
set @User='sa'
set @pwd='123'

exec @hr=sp_oacreate 'SQLDMO.sqlserver',@SrvID output
if @hr<>0
begin
set @Error=1
exec sp_OADestroy @SrvID --释放ole对象
end

--/*连接服务器
exec @hr=sp_oamethod @SrvID,'connect',null,@ServIP,@User,@pwd
print @hr
if @hr<>0
begin
set @Error=2
print '连接失败'+convert(varchar(20),@SrvID)
end
else
begin
set @Error=0
print '连接成功'+convert(varchar(20),@SrvID)
end
exec @hr = sp_OAMethod @SrvID, 'DisConnect' --断开服务器连接
exec sp_OADestroy @SrvID --释放ole对象

--检查数据库链接服务器是否存在,不存在则创建并且登录--------------------------------------------

--判断该链接服务器
if not exists (select * from master.dbo.sysservers where srvname = @ServerName)
begin
exec @hr=sp_addlinkedserver @ServerName,@ServerName,'SQLOLEDB',@ServIP,null,null,'ERPData'
if @hr=0
print '重新创建链接服务器成功!'+@ServerName
end

exec @hr=sp_addlinkedsrvlogin @ServerName,'false',null,@User,@pwd
IF @hr=1 --登录失败
begin
exec @hr=sp_dropserver @ServerName,'droplogins' --删除链接服务器,等待下次重新重建
print '登录失败,请重新登录'+@ServerName +'登录返回值:'+convert(varchar(1),@hr)
end
else
begin
print '登录成功!'+@ServerName +'登录返回值:'+convert(varchar(1),@hr)
--测

试查询是否可以使用链接服务器
set @SQL_str='select top 1 * from '+@ServerName+'https://www.doczj.com/doc/1d13852431.html,er_comp'
print @SQL_str
exec(@SQL_str)
end


相关主题
文本预览
相关文档 最新文档