私はいつも、T-SQL のシノニムは便利な省略形だと思っていました。それでも、次のことを行うと...
T_SHORT_NAMES_BACKUP のシノニム BACKUP_TABLE を作成する
T_SHORT_NAMES から BACKUP_TABLE に * を選択
... BACKUP_TABLE というオブジェクトが既に存在するというエラーが表示されます。私は何か間違ったことをしていますか?
私はいつも、T-SQL のシノニムは便利な省略形だと思っていました。それでも、次のことを行うと...
T_SHORT_NAMES_BACKUP のシノニム BACKUP_TABLE を作成する
T_SHORT_NAMES から BACKUP_TABLE に * を選択
... BACKUP_TABLE というオブジェクトが既に存在するというエラーが表示されます。私は何か間違ったことをしていますか?
シノニムは、他の SQL テーブルへのポインターです。やりたいことによっては、非常に便利です。別のデータベースのテーブル、または別のサーバーのテーブル (リンク サーバーを介して) を指すことができます。私たちはETLでそれらを大いに活用しています
私が私のものを生成するために使用するプロセス:
シノニムを動的に構築するクエリ:
SELECT
'CREATE SYNONYM [dbo].[' +TABLE_NAME+ '] FOR [' + 'Put database name here or remove' + '].[dbo].['+TABLE_NAME+']'
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_TYPE = 'BASE TABLE'
そこから、あなたはただSELECT * FROM TABLE_NAME
さて、あなたの質問に戻ります。BACKUP_TABLE
を指すシノニムを作成しますT_SHORT_NAMES_BACKUP
。
試す: SELECT * FROM BACKUP_TABLE
シノニムの詳細を確認するには:SELECT name, base_object_name FROM sys.synonyms