資料庫識別碼
資料庫物件名稱又稱為識別碼。 Microsoft SQL Server 中的每一個物件都具有識別碼。 伺服器、資料庫與資料庫物件 (如資料表、檢視、資料行、索引、觸發程序、程序、條件約束、規則) 都可以有識別碼。 大多數物件都需要識別碼,但對部分物件如條件約束,則是選擇性的需求。
定義物件時會建立物件識別碼。 之後就可以使用識別碼來參考物件。 例如,以下陳述式會建立具有識別碼 TableX 的資料表,以及具有識別碼 KeyCol 與 Description 的兩個資料行:
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))
這個資料表也有一個未命名的條件約束。 PRIMARY KEY 條件約束沒有識別碼。
識別碼的定序由其定義階層決定。 執行個體階層物件的識別碼 (如登入與資料庫名稱),會被指派執行個體的預設定序。 而資料庫中物件 (如資料表、檢視和資料行名稱) 的識別碼,則會被指派資料庫的預設定序。 例如,在區分大小寫定序的資料庫中,您可以建立名稱相同但大小寫不同的兩個資料表,但在不區分大小寫定序的資料庫中,就不可以建立名稱相同但大小寫不同的兩個資料表。
[!附註]
變數、函數和預存程序的名稱必須符合 Transact-SQL 識別碼的規則。
識別碼的分類
識別碼分為兩類:
一般識別碼
符合識別碼格式的規則。 在 Transact-SQL 陳述式中使用一般識別碼時不以符號分隔。SELECT * FROM TableX WHERE KeyCol = 124
分隔識別碼
括在雙引號 (") 或方括號 ([ ]) 中的識別碼。 符合識別碼格式規則的識別碼不一定要以符號分隔。 例如:SELECT * FROM [TableX] --Delimiter is optional. WHERE [KeyCol] = 124 --Delimiter is optional.
不符合識別碼規則的識別碼在 Transact-SQL 陳述式中一定要以符號分隔。 例如:
SELECT * FROM [My Table] --Identifier contains a space and uses a reserved keyword. WHERE [order] = 10 --Identifier is a reserved keyword.
一般識別碼與分隔識別碼都必須包含在 1 到 128 個字元之間。 至於本機暫存資料表,識別碼最多可有 116 個字元。
保留字
識別碼不可以是 Transact-SQL 保留字。 SQL Server 會保留大小寫版本的保留字。 在 Transact-SQL 陳述式中使用識別碼時,如果識別碼與上述規則不符,您必須使用雙引號 ("") 或方括號 ([]) 加以分隔。 保留的關鍵字取決於資料庫相容性層級。 您可以使用 ALTER DATABASE 陳述式設定這個層級。
請參閱
參考
CREATE DATABASE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)