2011-10-23 25 views
0

ストアプロシージャ内で参照されるテーブルにエイリアスを付ける方法はありますか。ストアドプロシージャ内のSQL SERVERテーブルエイリアス

Declare @target= (sometalbewithveryverylonganduglyname) 
Declare @source= (anothertablewithaveryuglyverylongverybadname) 

Select * from @target 

Insert into @target select from @source 

delete from @source 

理由ビーイング、表ソースとターゲットは、(テーブル名が変更された場合、我々はただ一つの場所に変更)変更することができ、かつ読みやすくするため。

Select * from @target 

@targetが最初にユーザー定義型としてテーブルを設定する必要があり、テーブル変数として定義されていない限り:あなたが行うことができないT-SQLで

答えて

0

。変数に物理テーブルの名前を割り当てて、このようにアクセスする場合は、動的SQLを使用してステートメントを実行する必要があります。

exec ('Select * from @target') 

あなただけのテーブルをエイリアスにしたい場合は、このようなクエリ記述することができます。あなたの質問から

Select * from sometalbewithveryverylonganduglyname AS t 

は、あなたが使用する必要があるとしているので、変更することができ、テーブル名のように聞こえます動的SQLを最後に使用します。

0

Yuckが提案したように動的SQLに頼らない限り、あなたが何を記述することはできませんが、長いテーブル名を書かないために行うことは正当な理由ではありません。 SSMSにはすでにインテリセンスが含まれており、SQL Server 2005以降ではfree tools out thereの多くを使用できます。それは間違いの間違いだけでなく、あなたが行う必要がある入力の量を減らすはずです。

はまた、あなたは常にあなたには、いくつかのORMライブラリを使用して、ストアドプロシージャを使用したくないような場合には)select t.column1 from really_long_and_ugly_name t ...

0

オプション1を行うことができ、それはあなたが同じで異なるテーブル名を切り替えることができます構造は非常に簡単です

オプション2)ビューを使用しているため、基礎となるテーブルを非表示にして、そのような変更を許可します

関連する問題