我正在維護由SQL Server中的其他人創建的數據庫。在一張表中,我找到了一個名字在方括號之間的列。該字段的名稱是desc
,它以[desc]
的形式存儲在表中。其他字段沒有方括號存儲。這種選擇背後有什麼特別的理由/慣例嗎?是否有任何理由在方括號之間寫入數據庫列?
構建在數據庫之上的應用程序是用C#或VB.NET開發的。
感謝
我正在維護由SQL Server中的其他人創建的數據庫。在一張表中,我找到了一個名字在方括號之間的列。該字段的名稱是desc
,它以[desc]
的形式存儲在表中。其他字段沒有方括號存儲。這種選擇背後有什麼特別的理由/慣例嗎?是否有任何理由在方括號之間寫入數據庫列?
構建在數據庫之上的應用程序是用C#或VB.NET開發的。
感謝
括號(或其他數據庫引擎中的其他標識符)只是告訴查詢引擎該術語是數據庫中對象的標識符的明確方式。常見原因包括:
(我想也有可能是因爲引擎不需要試圖識別那個項目的含義,它已經被明確告知它是一個對象。仍然需要驗證,當然,但它可能是在內部工作的一個小幫助。)
例如,如果你有一個字段是一個關鍵詞,例如[日期]或[選擇]或在這種情況下,[DESC]
如果你的名字包含任何的保留字(如SELECT)或空格,則需要用[]包圍名稱。
在你的例子中,你有[desc],這是DESCENDING的縮寫。
實際上,它是降序的縮寫(如在ORDER BY子句中),但在其他方面是正確的。 –
「DESCENDING」的縮寫,而不是「DESCRIBE」 – JNK
對不起,您是對的。編輯。 –
一個術語狡辯:當你說'它被存儲在表中'[desc]',你確定嗎?什麼工具告訴你?如果你已經使用SQL Mgmt Studio來創建'CREATE'腳本,它將會使得* runnable * T-SQL,這個保留字需要'[]' - 但是列的*名稱*不是「字段」)是'desc',這可以通過查詢'sys.columns'來看到。 – AakashM