none
Verificacion de acceso a Servidores RRS feed

  • Pregunta

  • Tengo 10 servidores sobre SQL Server 2000 a los cuales necesito hacer una consulta a un JOB de respaldo con el siguiente query:

    DECLARE @Base AS NVARCHAR (100)
    DECLARE @QUERY NVARCHAR(2500)
    DECLARE CursorBase CURSOR FOR SELECT ltrim(rtrim(SERVIDOR)) FROM [MonitorRespaldos].dbo.MonitoreoServidores WHERE verifica = 0
    OPEN CursorBase
     FETCH NEXT FROM CursorBase INTO @Base
      WHILE @@FETCH_STATUS = 0 
       BEGIN
        SET @QUERY = '
     IF object_id (''tempdb..#cmdshell'') IS NOT NULL
      DROP TABLE #cmdshell
     CREATE TABLE #cmdshell (fields NVARCHAR(200))

     INSERT #cmdshell
      EXEC master..xp_cmdshell ''osql -E /Q "Select ''''' + @Base + ''''' as Servidor, left(name, 40) from OPENDATASOURCE(''''SQLOLEDB'''', ''''Data Source=' + @Base + ';Integrated Security=SSPI'''').msdb.dbo.sysjobs "''

     INSERT MonitorRespaldos.dbo.MonitoreoConexiones
        SELECT ''' + @Base + ''' as Servidor, fields FROM #cmdshell where RIGHT(LEFT(fields, 20),19) like '' ' + @Base + '%''
     '
         EXEC (@QUERY)
     
       FETCH NEXT FROM CursorBase INTO @Base
      END 
    CLOSE CursorBase  
    DEALLOCATE CursorBase
    GO

     Corre bien, pero cuando no tiene acceso a algún servidor, se sale del cursor y ya no verifica los demás.

    Como podría hacer para tratar el error de conexión?. Saludos

    jueves, 29 de mayo de 2014 19:51

Respuestas