语法不正确?

时间:2014-11-17 15:15:21

标签: sql-server reporting-services

我在Visual Studio 2010中使用rdl报告。

我编写查询和刷新字段,然后提示“定义查询参数”

像这样

  

参数名称|参数值

我设置了这个值

  

@proj |参数!project.Value

然后单击“确定”

我收到此错误

  

'!'

附近的语法不正确

我不知道'!'在我的查询

这是我在rdl数据集中查询的示例

DECLARE @sqlCom NVARCHAR(MAX)
SET @sqlCom = '
   SELECT name
   FROM customer
   WHERE id IN ('+ @proj +') 
   '

IF (LEN(@phoneNo) > 0)
BEGIN
    SET @sqlCom = @sqlCom + ' AND phoneNo LIKE ''%'+@phoneNo+'%'' '
END

IF (LEN(@age) > 0)
BEGIN
    SET @sqlCom = @sqlCom + ' AND age LIKE ''%'+@age+'%'' '
END

EXECUTE(@sqlCom)

因此。只有@sqlCom是SQL变量     @proj,@ phoneNo,@ tag是rdl参数

任何人都可以帮我解决这个问题

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是你遗漏了'+ @proj +'中的单引号。试试这样的事情

DECLARE @sqlCom NVARCHAR(MAX)
SET @sqlCom = '
   SELECT name
   FROM customer
   WHERE id IN ('''+ @proj +''') 
   '

IF (LEN(@phoneNo) > 0)
BEGIN
    SET @sqlCom = @sqlCom + ' AND phoneNo LIKE ''%'+@phoneNo+'%'' '
END

IF (LEN(@age) > 0)
BEGIN
    SET @sqlCom = @sqlCom + ' AND age LIKE ''%'+@age+'%'' '
END

EXECUTE(@sqlCom)