Sql-Server

“UNIQUEIDENTIFIER”數據類型名稱的簡寫?

  • March 19, 2021

數據類型關鍵字“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

所以我有兩個問題。

  1. “GUID”和“UID”這兩個詞實際上是關鍵字,還是 SSMS 出於不同的原因對它們進行著色?
  2. 使用“GUID”或“UID”作為 UDT 名稱可能會帶來哪些注意事項/風險?我主要擔心未來的 tSQL 語言合規性。

我無法告訴您Microsoft 背後的原因GUID及其UID保留字列表中包含的原因,但他們有這就是為什麼它們在SSMS中被顏色編碼為藍色的原因。可能是為了將來打樣,以防他們決定將它們實​​際實現為功能關鍵字或匹配其他數據庫系統標準,但目前我不知道這兩個詞的任何功能目的。

這是最佳實踐,建議在命名事物時避免使用保留字以避免任何潛在的並發症,這對於這兩個詞目前是未知的,並且取決於微軟是否確實實現了它們背後的含義。如果要在UDT名稱中使用它們,則應始終使用方括號引用它們,以盡量減少未來的潛在問題。但我個人的建議是避免將它們全部放在一起並選擇不同的名稱,例如UG.

引用自:https://dba.stackexchange.com/questions/286259