Drukarka komunikatów serwera SQL
Natychmiastowe drukowanie wiadomości w SSMS przy użyciu sprawdzonej i zaufanej sztuczki. Zawiera znacznik daty i godziny oraz numery wierszy opcji
Funkcja, którą regularnie stosujemy, aby śledzić czasy w ramach długotrwałych procedur przechowywanych. To drukuje bez czekania na partię, taką jak PRINT. Używane są trzy parametry wejściowe:
- @MessageDate - Podaj NULL, aby wydrukować aktualną datę i godzinę podczas wywoływania funkcji,
- @MessageText - Tekst wiadomości, który chcesz wyświetlić
- @MessageRows — opcjonalnie dodaj liczbę wierszy, których to dotyczy.
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