Sql server 如何检查链接服务器是否在函数中运行?
我知道有一种方法可以检查链接服务器是否正在运行。Sql server 如何检查链接服务器是否在函数中运行?,sql-server,sql-server-2008,tsql,sql-server-2012,linked-server,Sql Server,Sql Server 2008,Tsql,Sql Server 2012,Linked Server,我知道有一种方法可以检查链接服务器是否正在运行。 我想知道是否有办法在函数中检查它 我写了这段代码: create function dbo.Ck_DB_Stat (@servername nvarchar (20)) returns bit AS BEGIN declare @srvr nvarchar(128), @retval int, @res nvarchar (10) declare @ck bit set @srvr = @servername;
我想知道是否有办法在函数中检查它 我写了这段代码:
create function dbo.Ck_DB_Stat
(@servername nvarchar (20))
returns bit
AS
BEGIN
declare @srvr nvarchar(128), @retval int, @res nvarchar (10)
declare @ck bit
set @srvr = @servername;
begin try
exec @retval = sys.sp_testlinkedserver @srvr;
set @ck = 1
end try
begin catch
set @retval = sign(@@error);
end catch;
if @retval <> 0
set @ck = 0
return @ck
END
创建函数dbo.Ck\u DB\u Stat
(@servername nvarchar(20))
返回位
作为
开始
声明@srvr nvarchar(128)、@retval int、@res nvarchar(10)
声明@ck位
设置@srvr=@servername;
开始尝试
exec@retval=sys.sp_testlinkedserver@srvr;
设置为@ck=1
结束尝试
开始捕捉
设置@retval=符号(@@error);
末端捕捉;
如果@retval 0
设置为@ck=0
返回@ck
结束
您不能在函数中执行存储的过程。在SQL CLR
函数中,您可以执行动态SQL语句,因此我想执行其他过程也是OK
。