CREATE SYNONYM (Transact-SQL)

建立新的同義字。

主題連結圖示Transact-SQL 語法慣例

語法

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object >

< object > :: =
{
    [ server_name.[ database_name ] . [ schema_name_2 ].| database_name . [ schema_name_2 ].| schema_name_2. ] object_name
}

引數

  • schema_name_1
    指定建立同義字的結構描述。如果未指定 schema,SQL Server 2005 會使用目前使用者的預設結構描述。
  • synonym_name
    這是新同義字的名稱。
  • server_name
    這是基底物件所在的伺服器名稱。
  • database_name
    這是基底物件所在的資料庫名稱。如果未指定 database_name,就會使用目前資料庫的名稱。
  • schema_name_2
    這是基底物件的結構描述名稱。如果未指定 schema_name,就會使用目前使用者的預設結構描述。
  • object_name
    這是同義字參考的基底物件名稱。

備註

在建立同義字時,基底物件不需要存在。在執行階段,SQL Server 會檢查基底物件是否存在。

您可以建立下列物件類型的同義字:

組件 (CLR) 預存程序

組件 (CLR) 資料表值函數

組件 (CLR) 純量函數

組件彙總 (CLR) 彙總函數

複寫篩選程序

擴充預存程序

SQL 純量函數

SQL 資料表值函數

SQL 嵌入資料表值函數

SQL 預存程序

檢視

資料表1 (使用者自訂)

1 包括本機和全域暫存資料表

不支援函數基底物件的四部分名稱。

動態 SQL 中的同義字可以建立、卸除和參考。

權限

若要以給定結構描述建立同義字,使用者必須擁有 CREATE SYNONYM 權限,並擁有該結構描述或 ALTER SCHEMA 權限。

CREATE SYNONYM 權限是可授與的權限。

ms177544.note(zh-tw,SQL.90).gif附註:
您不需要基底物件的權限,便能夠成功編譯 CREATE SYNONYM 陳述式,因為基底物件的所有權限檢查都會延遲到執行階段。

A. 建立本機物件的同義字。

下列範例先建立 AdventureWorks 資料庫中之基底物件 Product 的同義字,再查詢這個同義字。

USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks.
CREATE SYNONYM MyProduct
FOR AdventureWorks.Production.Product;
GO

-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name 
FROM MyProduct
WHERE ProductID < 5;
GO

以下為結果集:

-----------------------
ProductID   Name                      
----------- --------------------------
1           Adjustable Race
2           Bearing Ball
3           BB Ball Bearing
4           Headset Ball Bearings
(4 row(s) affected)

B. 建立遠端物件的同義字

在下列範例中,基底物件 Contact 在名稱為 Server_Remote 的遠端伺服器中。

EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks.HumanResources.Employee;
GO

範例

請參閱

參考

DROP SYNONYM (Transact-SQL)
GRANT (Transact-SQL)
EVENTDATA (Transact-SQL)

其他資源

使用同義字 (Database Engine)

說明及資訊

取得 SQL Server 2005 協助