You are on page 1of 3

DECLARE @instance nvARCHAR(100),

@indice INT ,
@contador INT ,
@service NVARCHAR(100)
IF NOT EXISTS(SELECT * FROM pubs..sysobjects where name = 'Reporte_ServicesStatus')
BEGIN

CREATE TABLE [pubs].[dbo].[Reporte_ServicesStatus](


[REP_DATE] [datetime] NULL,
[SERVER] [nvarchar](1000) NULL,
[INSTANCE_NAME] [varchar](100) NULL,
[SERVICE_NAME] [nvarchar](100) NULL,
[SERVICE_SATUS] [nvarchar](100) NULL
)
END

CREATE TABLE #GetInstances


( ID INT IDENTITY(1,1),
VALUE NVARCHAR(100),
INSTANCENAMES NVARCHAR(100),
DATA NVARCHAR(100))

CREATE TABLE #status (stat nvarchar(100))

Insert into #GetInstances


EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'

SET @contador =@@ROWCOUNT

SET @indice = 1

WHILE @indice <= @contador


BEGIN

SELECT @instance = INSTANCENAMES


FROM #GetInstances WHERE ID = @indice

IF (@instance = 'MSSQLServer')
BEGIN

SET @service = 'MSSQLServer'

INSERT INTO #status


EXEC MASTER.dbo.xp_servicecontrol'QUERYSTATE',
@service

INSERT INTO pubs..Reporte_ServicesStatus--


(SERVICE_SATUS)
SELECT GETDATE(),
@@SERVERNAME,
@instance,
@service,
stat
FROM #status
TRUNCATE TABLE #status

SET @service = 'SQLServerAgent'

INSERT INTO #status


EXEC MASTER.dbo.xp_servicecontrol'QUERYSTATE',
@service

INSERT INTO pubs..Reporte_ServicesStatus

SELECT GETDATE(),
@@SERVERNAME,
@instance,
@service,
stat
FROM #status

TRUNCATE TABLE #status

END
ELSE
BEGIN
SET @service = 'MSSQL$'+@instance

INSERT INTO #status


EXEC MASTER.dbo.xp_servicecontrol'QUERYSTATE',
@service

INSERT INTO pubs..Reporte_ServicesStatus


SELECT GETDATE(),
@@SERVERNAME,
@instance,
@service,
stat
FROM #status

TRUNCATE TABLE #status

SET @service = 'SQLAgent$'+@instance

INSERT INTO #status


EXEC MASTER.dbo.xp_servicecontrol'QUERYSTATE',
@service

INSERT INTO pubs..Reporte_ServicesStatus

SELECT GETDATE(),
@@SERVERNAME,
@instance,
@service,
stat
FROM #status

TRUNCATE TABLE #status

END

SET @indice = @indice + 1


END

DROP TABLE #GetInstances


DROP TABLE #status

SELECT *
FROM pubs..Reporte_ServicesStatus

You might also like