萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

SQL Server 註釋語法全解析:單行、多行與實戰範例

SQL Server 註釋語法簡單但易混淆。本文系統整理單行註釋 (--) 與多行註釋 (/* ... */) 的用法差異、巢狀限制與實戰範例,並附上管理工具輸出效果圖說明。

註釋語法對照表

類型語法範圍巢狀支援
單行註釋-- 註釋內容從 -- 至行尾不適用
多行註釋/* 註釋內容 */跨多行不支援巢狀 (內層 */ 會提前結束)

單行註釋實戰範例

-- 選擇列表中的列 'Student.sname' 無效,因為該列沒有包含在聚合函數或 GROUP BY 子句中。
SELECT Student.sno, sname, AVG(grade) AS avg_g
FROM Student, SC
WHERE Student.sno = SC.sno AND cno <> '008'
GROUP BY Student.sno -- 沒加 Student. 列名 'sno' 不明確。
HAVING MIN(grade) >= 60
ORDER BY avg_g DESC;

注意:-- 後必須跟隨空格或換行,否則部分版本可能不識別。

多行註釋實戰範例


/*
把對 Student 表和 Course 表的全部權限授予用戶 U2 和 U3
GRANT ALL PRIVILEGES ON TABLE Student, Course TO U2, U3;

把對表 SC 的查詢權限授予所有用戶
GRANT SELECT ON TABLE SC TO PUBLIC;

把查詢 Student 表和修改學生學號的權限授給用戶 U4
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;

把用戶 U4 修改學生學號的權限收回
REVOKE UPDATE(Sno) ON TABLE Student FROM U4;
*/

常見陷阱

  • 巢狀註釋失效:/* outer /* inner */ outer */ → 遇到第一個 */ 即結束,外層剩餘部分變為有效 SQL 導致語法錯誤。
  • 字串字面值中的註釋符號:SELECT '-- not a comment'; 不會被視為註釋。
  • GO 批次分隔符:註釋不跨越 GO,每個批次獨立解析。

工具輸出效果

SSMS (SQL Server Management Studio) 中註釋以綠色斜體顯示,便於區分。執行帶註釋的腳本時,訊息頁籤不顯示註釋內容。

最佳實踐建議

  • 單行說明用 --,區塊說明、暫時停用代碼用 /* */。
  • 複雜邏輯前加註釋說明業務意圖,而非重複代碼字面意義。
  • 版本控制下避免大量註釋掉代碼,直接刪除並依賴歷史記錄。
copyright © 萬盛學電腦網 all rights reserved