Imprimante de messages SQL Server
Imprimez instantanément des messages dans SSMS en utilisant une astuce éprouvée et fiable. Comprend un horodatage et des numéros de ligne d'option
Une fonction que nous utilisons régulièrement pour suivre les délais dans les procédures stockées de longue durée. Cela imprime sans attendre un lot comme PRINT. Trois paramètres d'entrée sont utilisés :
- @MessageDate - Passez NULL pour imprimer l'heure de la date actuelle lorsque la fonction est appelée,
- @MessageText - Le texte du message que vous souhaitez afficher
- @MessageRows - Ajoutez éventuellement le nombre de lignes affectées.
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