-- 字串
PRINT 'Hello World';
-- 整數 (隱含轉換)
PRINT 27;
-- 浮點數
PRINT 39.27;
PRINT 0.11111111111111111111;
特性:
RAISERROR('',0,1) WITH NOWAIT 才會顯示-- 任意輸出
SELECT * FROM sysobjects; -- 產生結果集
-- 條件輸出單一訊息
SELECT 'Hello World' FROM sysobjects WHERE id = 3;
原理: 利用系統表一定有資料列,透過 WHERE 篩選控制輸出筆數。
-- 即時顯示 (不等批次結束)
RAISERROR('即時訊息', 0, 1) WITH NOWAIT;
-- 格式化輸出
DECLARE @msg VARCHAR(100) = '處理完成: %d 筆, 耗時 %d ms';
RAISERROR(@msg, 0, 1, 1234, 56) WITH NOWAIT;
-- 變數內容除錯
DECLARE @var INT = 42;
PRINT '變數值: ' + CAST(@var AS VARCHAR(10));
| 特性 | RAISERROR(...,0,1) WITH NOWAIT | SELECT | |
|---|---|---|---|
| 即時顯示 | 否 (緩衝) | 是 | 否 (結果集) |
| 格式化支援 | 否 | 是 (printf 風格) | 否 |
| 輸出目的地 | 訊息索引標籤 | 訊息索引標籤 | 結果格線 |
| 長度限制 | 8000/4000 | 2048 | 無 |
| 適用場景 | 一般除錯、流程標記 | 長時間執行進度回報 | 快速檢視、臨時查詢 |
PRINT 或 RAISERRORRAISERROR WITH NOWAIT 回報進度