我試圖創建一個存儲過程來獲取鏈接服務器的狀態,以防止在嘗試執行任何操作時發生錯誤。我在網上看到了一些例子,但我沒有取得任何成功。獲取鏈接服務器狀態的存儲過程
這裏是我的代碼:
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 - 如果鏈接的服務器存在與否沒有關係。
任何想法我在做什麼錯在這裏?
你試過沒有開始嘗試,等運行呢? – ChrisBint
@ChrisBint顯示此消息:消息214,級別16,狀態90,過程sp_testlinkedserver,第1行過程期望類型爲'sysname'的參數'@servername'。 – Rafael
爲什麼你的參數'ntext'?你知道這種類型很久以前就被棄用了,對吧?你嘗試過'sysname'(因爲已經提示錯誤信息!)或'nvarchar(128)'? –