SQL Server 2016 sp_executesql奇怪的行为(真的)

时间:2017-08-29 20:51:02

标签: sql sql-server-2016 sp-executesql

我知道有很多"奇怪的行为"问题在这里,但我认为这是独一无二的,我想知道是否有人曾经遇到过这个问题?

我在单个nvarchar变量@SQL中构建一个大型动态查询,然后执行它...它是一个大型语句。我过去已经这么多次运行了很多次并且它有效。然后今天,某些东西被破坏或存储在某处的内存中。

我执行存储过程并收到错误,我注意到当我选择@sql时,我的动态查询会跳过动态代码中的case语句的一部分(非常特别是在第6个WHERE之后)并且稍后重新开始大约10行在动态查询代码中。我排查了很长时间,但没有运气。最后我说,嗯,如果我将动态查询拆分为2个部分,@ SQL_A和@SQL_B然后SET @SQL_C = @SQL_A和@SQL_B并且提供...确实如此,它确实有效。

我知道我是唯一一个在这方面工作的人,因为它在我的电脑上本地,而我100%不知道没有任何改变我已经检查了100次并且可以连接声明从2个字符串到1并且它可以工作,但是如果我尝试将其形成为1个完整的@sql nvarchar语句,那么似乎发生了某种类型的错误。它失败的条款是什么时候' GBAN07''然后,如果我删除它,它会一直失败,直到我结束只有6个WHERE子句后的case语句。如果我这样做,它可以正常工作,并且不会跳过10行代码......

思想?

0 个答案:

没有答案
相关问题