2017-11-12 36 views
-1

申し訳ありません私のテキストの書式を知っていないので、私のクエリの写真をアップロードしています...初心者としては紛らわしいです。あなたは、whileループと一緒にSQLカーソルを使用することができますMicrosoft TSQLのFROM句で変数値を渡す方法

querypic

+3

テキストだけで貼り付けて、画像よりも優れています。ツールバー '{}'には、左から4文字をインデントするボタンがあります。 –

+2

また、動的SQLとして知られているものを構築しない限り、テーブル名を変数として渡すことはできません:* SQLを生成する* sql * –

答えて

0

だから、あなたが実行したい:

select * from File_20170703 -- where your table name is a variable. 

テーブルやカラムの名前の変数を使用することはできません、あなたは何をする必要があるか、動的SQLを構築し、実行することですそれはsp_executesqlを使用しています。

DECLARE @sql nvarchar(4000) 
SELECT @sql = 'SELECT * FROM File_20170703' 
EXEC sp_executesql @sql 

More info about dynamic sql

0

シンプルなTSQLは "動的SQL" は次のようになります:

DECLARE @file_name AS VARCHAR(100) 
DECLARE @query AS VARCHAR(MAX) 

SET @file_name = 'file_20170101' 

SET @query = 'SELECT * FROM ' + @file_name 

execute(@query) 

は、基本的には、連結することにより、有効なSQLクエリを作成する必要があり、ここで

は一例ですクエリのさまざまな部分を一緒にすると、その大きな文字列全体をクエリとして実行できます。