リンクサーバーで何かを実行しようとしたときのエラーを防ぐために、リンクサーバーのステータスを取得するストアドプロシージャを作成しようとしています。オンラインでいくつかの例を見ましたが、それらで成功していません。
これが私のコードです:
ALTER PROCEDURE [dbo].[checkLinkedServer]
@servername ntext
AS
BEGIN
SET NOCOUNT ON;
DECLARE @retval int = 0;
BEGIN TRY
EXEC @retval = sys.sp_testlinkedserver @servername;
SELECT 1;
END TRY
BEGIN CATCH
SELECT 0;
END CATCH;
END
リンクサーバーが存在するかどうかに関係なく、常に0の戻り値を取得しています。
ここで私が間違っていることはありますか?