我正在为用户产品创建报告。由于报告是特定于用户的,因此我尝试使用动态SQL来添加每个用户可能需要的列。
SET @oldpID = @pproduct
SET @sql = 'INSERT INTO #temp ( ID, compID, ['+ @sname +'])
VALUES ('+ @pproduct +', '+ @pcompanyid +', '+ @pscreference +')'
execute(@sql)
问题是当我尝试使用变量@sname
填充列@pscreference
的信息时。由于其用户输入并且可能包含括号和空格,因此它会中断。我已经尝试使用QUOTESTRING()
并查看了其他一些问题,但他们更专注于sql注入。
逃脱它的最佳途径是什么?