create procedure sp_First @columnname varchar AS begin select @columnname from Table_1 end exec sp_First 'sname'
所以帮我
解决方法
你可以用几种方法来做到这一点。
一个是自己建立查询并执行它。
SET @sql = 'SELECT ' + @columnName + ' FROM yourTable' sp_executesql @sql
如果您选择该方法,请非常确定您的输入。即使您知道您的应用程序只会提供“真实”列名称,如果某些人在您的安全中发现破解并能直接执行SP,该怎么办?然后他们可以执行任何他们喜欢的任何东西。使用动态sql,总是验证参数。
或者,您可以写一个CASE语句…
SELECT CASE @columnName WHEN 'Col1' THEN Col1 WHEN 'Col2' THEN Col2 ELSE NULL END as selectedColumn FROM yourTable
这是一个更长的时间,但更多的安全。