共用方式為


使用同義字 (Database Engine)

更新: 2006 年 4 月 14 日

您可以使用同義字在數個 SQL 陳述式和運算式內容中取代其參考的基底物件。下表包含這些陳述式及運算式內容的清單:

SELECT

INSERT

UPDATE

DELETE

EXECUTE

子 SELECT

當您正在先前陳述的內容中使用同義字時,基底物件會受影響。例如,如果同義字參考的基底物件是資料表,而且您將資料列插入同義字,則實際上您是將資料列插入參考的資料表。

ms190626.note(zh-tw,SQL.90).gif附註:
您無法參考位於連結伺的服器上的同義字。

您可以使用同義字做為 OBJECT_ID 函數的參數。不過,此函數會傳回同義字的物件識別碼,而非基底物件。

您無法在 DDL 陳述式中參考同義字。例如,下列陳述式 (參考名為 dbo.MyProduct 的同義字) 會產生錯誤:

ALTER TABLE dbo.MyProduct
   ADD NewFlag int null;
EXEC ('ALTER TABLE dbo.MyProduct
   ADD NewFlag int null');

下列權限陳述式只與同義字有關聯,但與基底物件無關:

GRANT

DENY

REVOKE

 

同義字不是結構描述繫結性質,因此,下列結構描述繫結的運算式內容無法參考同義字:

CHECK 條件約束

計算資料行

預設運算式

規則運算式

結構描述繫結的檢視

結構描述繫結的函數

如需結構描述繫結函數的詳細資訊,請參閱<建立使用者自訂函數 (Database Engine)>。

範例

下列範例會建立將在後續範例中使用的同義字。

USE tempdb;
GO
CREATE SYNONYM MyAddressType
FOR AdventureWorks.Person.AddressType;
GO

下列範例將在 MyAddressType 同義字所參考的基底資料表中插入一列。

USE tempdb;
GO
INSERT INTO MyAddressType (Name)
VALUES ('Test');
GO

下列範例示範如何在動態 SQL 中參考同義字。

USE tempdb;
GO
EXECUTE ('SELECT Name FROM MyAddressType');
GO

請參閱

概念

同義字 (Database Engine)
擁有權鏈結

其他資源

CREATE SYNONYM (Transact-SQL)
DROP SYNONYM (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

新增內容:
  • 新增有關如何使用同義字搭配 OBJECT_ID 函數的資訊。
變更的內容:
  • 從可搭配同義字使用的陳述式清單中移除 DDL。