CREATE SYNONYM (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 權限是可授與的權限。
附註: |
---|
您不需要基底物件的權限,便能夠成功編譯 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)