SQL Server ストアド プロシージャ内で select ステートメントを生成したいと考えています。SQL パラメータに列名があります。
選択した列名を使用してプログラムで select ステートメントを生成しようとしていますが、ストアド プロシージャ内で正しい構文が見つからないようです。
CREATE PROCEDURE dbo.aProc
@testCondition int,
@colCount int,
@column_1 varchar(100) = null,
....
@column_40 varchar(100) null
AS
DECLARE @qry nvarchar(3000)
DECLARE @Iterator int
SET @testtype = 2
SET @Iterator = 0
SET @qry ='SELECT '
WHILE (@Iterator < @colCount-1)
BEGIN
SET @qry = @qry + ''+@column_''+CAST(@Iterator as varchar(2))+',''
Set @Iterator = @Iterator + 1
END
SET @qry = @qry + ''@column_+CAST(@colCount as varchar(2)) FROM aTable where aCol = @testCondition