Sql-Server
“UNIQUEIDENTIFIER”數據類型名稱的簡寫?
數據類型關鍵字“UNIQUEIDENTIFIER”是輸入的苦差事。我想要一個速記替換。
乍一看,SSMS 似乎提供了兩個;“GUID”和“UID”這兩個詞在查詢編輯器中都呈現為藍色(使用預設語法顏色方案)。
但它們並未在 Microsoft Docs 中列為保留關鍵字或未來關鍵字。我嘗試將它們用作非保留數據類型關鍵字(例如“DATE”或“INT”)
Declare @guid uid;
並收到此錯誤消息:
消息 2715,級別 16,狀態 3,第 1 行列、參數或變數 #1:找不到數據類型 uid。參數或變數“@guid”的數據類型無效。
我可以為名為“UID”的 UNIQUEIDENTIFIER 創建一個 UDT。結果似乎表現為非保留關鍵字:
Create Type [uid] From uniqueidentifier null; GO Declare @guid uid = newid(); Print @guid; GO
B398DA7A-0DF2-49B6-8415-82D31EAA9013
所以我有兩個問題。
- “GUID”和“UID”這兩個詞實際上是關鍵字,還是 SSMS 出於不同的原因對它們進行著色?
- 使用“GUID”或“UID”作為 UDT 名稱可能會帶來哪些注意事項/風險?我主要擔心未來的 tSQL 語言合規性。
我無法告訴您Microsoft 背後的原因
GUID
及其UID
保留字列表中包含的原因,但他們有這就是為什麼它們在SSMS中被顏色編碼為藍色的原因。可能是為了將來打樣,以防他們決定將它們實際實現為功能關鍵字或匹配其他數據庫系統標準,但目前我不知道這兩個詞的任何功能目的。這是最佳實踐,建議在命名事物時避免使用保留字以避免任何潛在的並發症,這對於這兩個詞目前是未知的,並且取決於微軟是否確實實現了它們背後的含義。如果要在UDT名稱中使用它們,則應始終使用方括號引用它們,以盡量減少未來的潛在問題。但我個人的建議是避免將它們全部放在一起並選擇不同的名稱,例如
UG
.