Impresora de mensajes de SQL Server
Imprima mensajes en SSMS al instante usando un truco probado y confiable. Incluye una marca de fecha y hora y números de fila de opción
Una función que empleamos regularmente para realizar un seguimiento de los tiempos dentro de los procedimientos almacenados de larga ejecución. Esto se imprime sin esperar un lote como PRINT. Se utilizan tres parámetros de entrada:
- @MessageDate: pase NULL para imprimir la fecha y hora actual cuando se llama a la función,
- @MessageText: el texto del mensaje que desea mostrar
- @MessageRows: opcionalmente, agregue la cantidad de filas afectadas.
SQL
Use UtilitiesGOCREATE PROC dbo.Printer(@MessageDate DATETIME,@MessageText NVARCHAR(250),@MessageRows NVARCHAR(50)) AS BEGIN IF @MessageDate IS NULL SET @MessageDate=GETDATE(); DECLARE @MessageDateString NVARCHAR(MAX)=CONVERT(NVARCHAR(20),@MessageDate,120) IF @MessageRows IS NOT NULL BEGIN RAISERROR ('%s - %s - Rows(%s)',0,0,@MessageDateString,@MessageText,@MessageRows) WITH NOWAIT END IF @MessageRows IS NULL BEGIN RAISERROR ('%s - %s',0,0,@MessageDateString,@MessageText,@MessageRows) WITH NOWAIT ENDENDGOEXEC dbo.Printer NULL,'Started',NULLWAITFOR DELAY '00:00:03'EXEC dbo.Printer NULL,'Step 1',1WAITFOR DELAY '00:00:01'EXEC dbo.Printer NULL,'Step 2',2WAITFOR DELAY '00:00:01'EXEC dbo.Printer NULL,'Step 3',3WAITFOR DELAY '00:00:01'EXEC dbo.Printer NULL,'Step 4',4WAITFOR DELAY '00:00:01'EXEC dbo.Printer NULL,'Step 5',5WAITFOR DELAY '00:00:01'EXEC dbo.Printer NULL,'Finished',NULL