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 ローカル一時テーブルとグローバル一時テーブルが含まれます。
4 部構成の関数ベース オブジェクト名はサポートされません。
シノニムは、動的な 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)