-6
create procedure <procedure>
(
    @tbl as varchar(50)='product',
    @col as varchar(50)='proid'
)
as 
begin
    select @col from @tbl 
end
4

1 に答える 1

2

デフォルトでは、パラメーター化されたテーブルまたは列の名前を使用できないためです。これを行う唯一の方法は、文字列で動的 SQL を作成し、その文字列を実行することです。例えば、

create procedure <procedure>
(
    @tbl as varchar(50)='product',
    @col as varchar(50)='proid'
)
as 
begin

   Declare @SQL VarChar(1000)

   SET @SQL = 'select ' + @col + ' from ' + @tbl 
   Exec ( @SQL)
end
于 2013-01-11T14:27:57.550 に答える