转义动态SQL的变量

时间:2015-07-16 14:57:45

标签: sql sql-server tsql

我正在为用户产品创建报告。由于报告是特定于用户的,因此我尝试使用动态SQL来添加每个用户可能需要的列。

SET @oldpID = @pproduct
SET @sql = 'INSERT INTO #temp ( ID, compID, ['+ @sname +'])
VALUES ('+ @pproduct +', '+ @pcompanyid +', '+ @pscreference +')'


execute(@sql)

问题是当我尝试使用变量@sname填充列@pscreference的信息时。由于其用户输入并且可能包含括号和空格,因此它会中断。我已经尝试使用QUOTESTRING()并查看了其他一些问题,但他们更专注于sql注入。

逃脱它的最佳途径是什么?

0 个答案:

没有答案