次の方法で共有


シノニムの使用 (データベース エンジン)

更新 : 2006 年 4 月 14 日

いくつかの SQL ステートメントや式のコンテキストでは、参照先のベース オブジェクトの代わりにシノニムを使用できます。次の表に、これに該当するステートメントや式のコンテキストを示します。

SELECT

INSERT

UPDATE

DELETE

EXECUTE

副選択式

上記のコンテキストでシノニムを扱っているときは、ベース オブジェクトが影響を受けます。たとえば、シノニムが参照するベース オブジェクトがテーブルの場合に、シノニムに行を挿入すると、実際に参照先のテーブルに行が挿入されます。

ms190626.note(ja-jp,SQL.90).gifメモ :
リンク サーバー上のシノニムを参照することはできません。

OBJECT_ID 関数のパラメータとしてシノニムを使用できます。ただし、この関数はベース オブジェクトではなく、シノニムのオブジェクト 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 制約

計算列

既定式

ルール式

スキーマ バインド ビュー

スキーマ バインド関数

スキーマ バインド関数の詳細については、「ユーザー定義関数の作成 (データベース エンジン)」を参照してください。

次の例では、この後の例で使用するシノニムを作成しています。

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

参照

概念

シノニム (データベース エンジン)
所有権の継承

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容 :
  • OBJECT_ID 関数でのシノニムの使用に関する情報を追加しました。
変更内容 :
  • シノニムの使用が有効なステートメントの一覧から DDL を削除しました。