SQL Server-Nachrichtendrucker
Drucken Sie Nachrichten in SSMS sofort mit einem bewährten Trick. Enthält einen Datumszeitstempel und Optionszeilennummern
Eine Funktion, die wir regelmäßig verwenden, um das Timing in langlaufenden Stored Procedures zu verfolgen. Dies druckt, ohne auf einen Stapel wie PRINT zu warten. Es werden drei Eingabeparameter verwendet:
- @MessageDate - Übergeben Sie NULL, um die aktuelle Datumszeit zu drucken, wenn die Funktion aufgerufen wird,
- @MessageText - Der Nachrichtentext, den Sie anzeigen möchten
- @MessageRows – Fügen Sie optional die Anzahl der betroffenen Zeilen hinzu.
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