Stored procedures 动态Sql错误,靠近'的语法无效&燃气轮机';

Stored procedures 动态Sql错误,靠近'的语法无效&燃气轮机';,stored-procedures,sql-server-2012,Stored Procedures,Sql Server 2012,我有下面的动态sql语句,我得到了“>”附近的错误语法。错误消息。我无法找出问题所在,不确定是否缺少记号。我尝试添加额外的记号,但似乎没有任何效果 Declare @filters varchar(max) SET @filters = 'Where PaymentAmount > 0' BEGIN SET @filters = @filters + ' AND CONVERT(DATE, AccountingDate) >= '''+ cast @BeginDate as nva

我有下面的动态sql语句,我得到了“>”附近的错误语法。错误消息。我无法找出问题所在,不确定是否缺少记号。我尝试添加额外的记号,但似乎没有任何效果

Declare @filters varchar(max)
SET @filters = 'Where PaymentAmount > 0'
BEGIN 
SET @filters = @filters + ' AND CONVERT(DATE, AccountingDate) >= '''+ cast @BeginDate as nvarchar) + ''''
SET @filters = @filters + ' AND CONVERT(DATE, AccountingDate) <= '''+ cast(@EndDate as nvarchar) + ''''
END

SET @SQLString = 'Select 
  ,[ReturnDate]
  ,[PolicyNumber]
From dbo.Bil_ReturnsRepository' + @filters

EXEC(@SQLString)
Declare@filters varchar(最大值)
设置@filters='其中PaymentAmount>0'
开始
设置@filters=@filters+”并转换(日期,AccountingDate)>='''+将@BeginDate转换为nvarchar)+'''

设置@filters=@filters+”并转换(DATE,AccountingDate)在将@filters转换为@SQLString之前,您需要另一个空格

SET @SQLString = 'Select 
  ,[ReturnDate]
  ,[PolicyNumber]
From dbo.Bil_ReturnsRepository ' + @filters
否则,生成的sql将是

...
From dbo.Bil_ReturnsRepositoryWhere PaymentAmount > 0
...

在将@filters转换为@SQLString之前,需要另一个空格

SET @SQLString = 'Select 
  ,[ReturnDate]
  ,[PolicyNumber]
From dbo.Bil_ReturnsRepository ' + @filters
否则,生成的sql将是

...
From dbo.Bil_ReturnsRepositoryWhere PaymentAmount > 0
...

哇。非常感谢。我的眼睛因为从这个开始几个小时都在痛。哈哈。有时候需要一双新的眼睛。再次感谢!@Jason heh,我知道你的痛苦:)哇。非常感谢。我的眼睛因为从这个开始几个小时都在痛。哈哈。有时候需要一双新的眼睛。再次感谢!@Jason heh,我知道你的痛苦:)