我写了一个查询:
DECLARE @Col_Select NVARCHAR(10);
SET @Col_Select = N'[od.orderID]';
DECLARE @Query NVARCHAR(4000);
SET @Query = N'SELECT quantity, COUNT(o.orderID) FROM orders o LEFT OUTER JOIN [order details] od ON o.orderid = @Col_Select group by od.quantity';
EXEC sp_executesql @Query,@Col_Select
我的查询有什么问题?
我收到此错误:
'od.orderI'附近的语法不正确SELECT数量,COUNT(o.orderID) 来自订单o LEFT OUTER JOIN [订单详情'。
答案 0 :(得分:0)
因为您正在构建字段更改的动态查询,所以这不能通过常规参数来完成。您必须使用该参数来构建查询字符串 - 如果您可以从用户输入提供@Col_Select以避免SQL注入攻击,请小心非常!
SET @Query=N'SELECT quantity,COUNT(o.orderID) FROM orders o LEFT OUTER JOIN [order details] od ON o.orderid = ' + @Col_Select + ' group by od.quantity';