首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server PRINT/SELECT 換行輸出技巧:CHAR(10)/CHAR(13)/CHAR(9) 制表符完整指南

     編輯:關於SqlServer

核心轉義字符

函數含義ASCII典型用途
CHAR(10)換行符LFUnix/Linux 風格換行
CHAR(13)回車符CRMac OS 9 風格 / Windows 配合 LF
CHAR(13)+CHAR(10)回車換行CRLFWindows 標準換行
CHAR(9)製表符TAB對齊輸出、CSV 分隔

PRINT 語句示例

PRINT 'Test' + CHAR(13) + CHAR(10) + 'Name';  -- 兩行
PRINT 'Col1' + CHAR(9) + 'Col2' + CHAR(9) + 'Col3';  -- 制表對齊

SELECT 結果集輸出 (SSMS 文本模式)

SELECT 'AAA' + CHAR(10) + 'BBB';   -- 兩行
SELECT 'AAA' + CHAR(13) + 'BBB';   -- 兩行 (SSMS 渲染相同)
SELECT 'AAA' + CHAR(13) + CHAR(10) + 'BBB'; -- 標準 CRLF

實戰場景:動態構建多行腳本/郵件正文

DECLARE @Msg NVARCHAR(MAX) = N'';
SELECT @Msg += N'Database: ' + name + CHAR(13) + CHAR(10)
             + N'  Size: ' + CAST(size_mb AS VARCHAR) + N' MB' + CHAR(13) + CHAR(10)
             + N'  Status: ' + state_desc + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
FROM sys.databases;
PRINT @Msg;  -- 或 EXEC msdb.dbo.sp_send_dbmail @body = @Msg, ...

避坑提示

  • SSMS「結果以網格顯示」模式下換行符不直觀,需切換「結果以文本顯示」 (Ctrl+T)
  • 導出文件時指定編碼 (UTF-8 with BOM) 避免換行符損壞
  • 長字符串拼接用 STRING_AGG (SQL 2017+) 或 `FOR XML PATH` 替代循環

PRINT 換行輸出效果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved