Sql-Server

與目錄視圖同名的 SQL 表

  • May 16, 2019

在 SQL 中命名表時,我盡量遠離 SQL 保留關鍵字,但今天一位同事質疑將其Events用作表名。他們說,SSMS 中任何變成綠色的東西都不應該用作表名。

Events在 MS SQL Server 中作為表名使用時,是否有任何衝突或陷阱?

我通常也會盡量避免對使用者創建的對象使用保留字,但有時確實很難避免。一些非常常見的術語是保留字(例如UserandLogin等),因此有時被迫不惜一切代價避免使用它們意味著您需要為您的項目選擇一個意義不大、不太直覺的名稱,而這確實對您的項目沒有好處或公司。

因此,唯一真正的“陷阱”是您需要做的以防止衝突:始終分隔作為保留字的對象名稱(即始終指定由[and包圍的名稱])。

現在,並非所有在 SSMS 中改變顏色的單詞都會成為技術衝突,但這並不意味著您不應該對它們進行定界。這些話在未來的版本中可能會成為技術衝突,這可能會使升級複雜化(即增加時間,從而增加成本)。

一個簡單的例子:

USE [tempdb];
CREATE TABLE dbo.Select ([Col1] INT); -- "Select" = blue
/*
Msg 156, Level 15, State 1, Line XXXXX
Incorrect syntax near the keyword 'Select'.
Msg 102, Level 15, State 1, Line XXXXX
Incorrect syntax near 'INT'.
*/


CREATE TABLE dbo.[Select] ([Col1] INT);
-- Success


CREATE TABLE dbo.Event ([Col1] INT); -- "Event" = blue
-- Success


CREATE TABLE dbo.Events ([Col1] INT); -- "Events" = green
-- Success

同樣,即使不需要分隔“事件”,但如果您確實使用它,我強烈建議您始終指定它[Events]以保證沒有衝突。

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