Gespeicherte Prozedur, um den status eines Verbindungsservers

Ich versuche zum erstellen einer gespeicherten Prozedur zum abrufen des status von einem verknüpften server befindet, um Fehler zu vermeiden, beim Versuch, führen etwas auf. Ich sah einige Beispiele online, aber ich bin nicht mit jeder Erfolg mit denen.

Hier ist mein code:

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

Ich bin immer einen Rückgabewert von 0 - keine Rolle, ob die verlinkten server vorhanden ist oder nicht.

Irgendwelche Ideen, was mache ich hier falsch?

  • Haben Sie versucht, läuft es ohne die beginnen, versuchen Sie, etc?
  • Dies zeigt: Meldung 214, Ebene 16, Status, 90, Verfahren sp_testlinkedserver, Zeile 1 die Prozedur erwartet parameter '@servername' des Typs 'sysname'.
  • Warum ist dein parameter ntext? Sie wissen, dass diese Art veraltet ist lange her, richtig? Haben Sie versucht, die sysname (wie die Fehlermeldung schon vorgeschlagen!) oder nvarchar(128)?
  • ich weiß es nicht ... und nun, was ist der Ersatz geben
InformationsquelleAutor Rafael | 2012-10-11
Schreibe einen Kommentar