SQL Server Mesaj Yazıcısı
Denenmiş ve güvenilir bir numara kullanarak mesajları anında SSMS'de yazdırın. Bir tarih saat damgası ve seçenek satır numaraları içerir
Uzun süredir devam eden Saklı Prosedürler içindeki zamanlamaları takip etmek için düzenli olarak kullandığımız bir işlev. Bu, PRINT gibi bir toplu iş beklemeden yazdırır. Üç giriş parametresi kullanılır:
- @MessageDate - İşlev çağrıldığında geçerli tarih saatini yazdırmak için NULL girin,
- @MessageText - Görüntülemek istediğiniz mesaj metni
- @MessageRows - İsteğe bağlı olarak etkilenen satır sayısını ekleyin.
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