我们有一个需要从链接服务器中选择项目的功能,例如
Alter function dbo.ttest1()
returns int
as
begin
SELECT * FROM LINKED_SERVER.Database.Schema.Table
WHERE .....
RETURN 0
end
如果远程服务器不可用,该函数将抛出连接失败的错误,但我想覆盖它并让它返回默认值。
由于这是编译级错误,BEGIN TRY --- END TRY
无法覆盖它,更糟糕的是,因为我们处于功能状态EXEC(@string)
,sp_executesql
,SELECT * FROM OPENQUERY('...')
, sp_testlinkedserver
它们都不起作用。最糟糕的是,我承担不起承担将其更改为SP的风险(语法SELECT dbo.ttest1()
在项目的任何地方都被渗透)。
有什么好的解决方案吗?