如何在SQL Server中为我的场景进行动态查询?

时间:2017-02-08 10:19:45

标签: sql sql-server stored-procedures dynamic-sql

当我执行以下动态查询时,我得到了结果

[dbo].[spGetTotalSalesQuantity] @CustomerQuery=1,@DateFrom='2015-01-01 00:00:00',@DateTo='2015-12-31 23:59:59',@whereSql='tq.storeid=1001'
  

@ whereSql ='tq.storeid = 1001'这是重要的一个

执行以下操作时,显示错误

[dbo].[spGetTotalSalesQuantity] @CustomerQuery=1,@DateFrom='2015-01-01 00:00:00',@DateTo='2015-12-31 23:59:59',@whereSql='tq.itemlookupcode=807424C0072'
  

@ whereSql ='tq.itemlookupcode = 807424C0072'在此部分中显示错误。我应该在值之前和之后添加单引号。

     

如何在此之前和之后添加单引号 tq.itemlookupcode ='807424C0072'?

这是错误消息

Msg 102, Level 15, State 1, Line 23
Incorrect syntax near 'C0072'.

1 个答案:

答案 0 :(得分:1)

只需双倍时间报价即可实现

@whereSql='tq.itemlookupcode=''807424C0072'''

请尝试以下选择

select 'tq.itemlookupcode=''807424C0072'''

你会得到像

这样的结果
tq.itemlookupcode='807424C0072'