在SQL Server 2008中,我將一個表命名爲「Procedures」SQL Server 2008 - 名稱爲「程序」保留?
每當我編寫一個查詢時,單詞過程變爲綠色,但我的其他表名不會。我想這與Stored Procedures有關,它與我創建的表無關。
我可以使用表名稱程序,還是應該更改它?
在SQL Server 2008中,我將一個表命名爲「Procedures」SQL Server 2008 - 名稱爲「程序」保留?
每當我編寫一個查詢時,單詞過程變爲綠色,但我的其他表名不會。我想這與Stored Procedures有關,它與我創建的表無關。
我可以使用表名稱程序,還是應該更改它?
你應該沒問題。 「程序」(單數)是保留字,但「程序」(複數)不是。
這裏是所有保留關鍵字的列表 - SQL Reserved Keywords
注意,你被允許說出任何你想要的表。我不認爲將表格命名爲保留關鍵字是最佳做法,但您可以。請注意,如果您這樣做,則必須稍微修改查詢,方法是將表名稱包裝在方括號中。
您可以命名你希望你的表什麼(除了它必須遵循的規則identifiers,並且不能超過128個字符)。如果碰巧是保留字,則必須使用[TableName]。儘管如此,通常不建議這樣做。它可能會混淆其他開發人員,並且如果它成爲保留關鍵字,可能會在將來的升級中造成問題。
程序不是過程中的保留關鍵字。
Procedures
變爲綠色,因爲它是一個目錄視圖,sys.procedures
的名稱。當我看到一個與T-SQL顏色編碼衝突的項目時(無論是否保留,以及它是否導致今天的錯誤),我質疑這是否是最好的名稱。
如果我轉移到SQL Server的新版本,並且某個單詞突然變爲關鍵字或保留字,除了(a)完整且痛苦的重構或(b)使用方形括號中的名稱以確保SQL Server能夠理解它是一個標識符。這不會變綠,例如:
SELECT cols FROM dbo.[Procedures];
這不是漂亮很明顯,但除了不點亮綠色的,它實際上隔離您從未來的兼容性問題,他們應該永遠做procedures
關鍵字或保留字。
總的來說,我覺得很安全使用周圍甚至在永遠也不可能成爲一個關鍵詞可能做到任何標識符名稱方括號。
有趣的知道爲什麼它實際上變成綠色。從我+1。 – 2012-03-08 18:31:07
限定名稱只能防止它變成綠色,它不會更改名稱本身。嘗試'SELECT * FROM [sys]。[procedures]',它將返回與'SELECT * FROM sys.procedures'相同的結果。 – 2012-03-08 20:20:57
誰說它改變了名字本身? – 2012-03-08 20:25:33
不好的壞主意。 – Asdfg 2012-03-08 18:24:26
當有疑問擴大名稱是更具體的,如'WidgetProcedures'或'AccountingProcedures'等[混淆]你的[代碼]與[大括號]是[更糟!] – 2012-03-08 18:56:29