日期:2014-05-18  浏览次数:20364 次

如何判断数据库连接情况?
declare @TargetServer varchar(40)

if not exists(Select * from master.dbo.sysservers where srvname=@TargetServer)
begin
EXEC sp_addlinkedserver @TargetServer, N'SQL Server'
EXEC sp_addlinkedsrvlogin @TargetServer, 'false', NULL, 'sa', 'sbfukxk'
end

我用以上的代码,在A数据库服务器上建立与B数据库服务器的连接。A与B服务器的物理网络断开或因系统原因
导致A数据库服务器无法访问B数据库服务器,如何在此之前判断两个服务器之间是否可以正常访问?

在下面使用语句之前,如何判断A与B之间可以访问?
Select * from ['+@TargetServer+'].TZ_999_2010.dbo.tbZYDA

------解决方案--------------------
你可以判断到远程数据库中的syscolumns系统表是否存在你想要的内容,如果存在,可判断为连接正确,如果不存在,可判断为连接不正确.

if exists(select 1 from 服务器名.数据库名.dbo.syscolumns where ...)
print '连接正确'
else
print '连接不正确'

------解决方案--------------------
sql中没有相应的函数。你可以做一次没有意义的查询,然后判断是否能获取到数据,如果可以的话说明数据库可以连接