SQL Server存储过程计划错误

SQL Server存储过程计划错误,sql,stored-procedures,sql-server-2008-r2,Sql,Stored Procedures,Sql Server 2008 R2,我有一个应用程序在ASP.Net上运行,使用C#。数据库是SQL Server 2008 R2。asp.net应用程序还大量使用jQuery和AJAX 我们有一个页面,其中有一些下拉列表,这些下拉列表是使用jqueryajax调用填充的。AJAX调用中的cache参数已设置为“false”。AJAX调用以基于页面的WebMethod(即PageMethod)为目标,该WebMethod反过来调用存储过程。此存储过程返回一个数据集,该数据集转换为JSON输出并返回到AJAX调用 最近,我们开始面临

我有一个应用程序在ASP.Net上运行,使用C#。数据库是SQL Server 2008 R2。asp.net应用程序还大量使用jQuery和AJAX

我们有一个页面,其中有一些下拉列表,这些下拉列表是使用jqueryajax调用填充的。AJAX调用中的cache参数已设置为“false”。AJAX调用以基于页面的WebMethod(即PageMethod)为目标,该WebMethod反过来调用存储过程。此存储过程返回一个数据集,该数据集转换为JSON输出并返回到AJAX调用

最近,我们开始面临一个奇怪的问题,在AJAX调用上执行的存储过程抛出了类似“无法将‘undefined’转换为int”的错误。我们已经在生产环境中调试了整个逻辑,没有像“undefined”这样的值作为参数传递给存储过程。我们还启动了Sql Profiler,在那里传递的参数也是有效的

此外,如果使用Sql事件探查器中显示的参数执行存储过程,则它将成功执行,不会出现任何错误。此时,我们发现的唯一“修复”是在SSMS中打开存储过程,并按原样执行生成的存储过程脚本(不更改脚本)。执行此alter脚本后,存储过程将开始正确返回值。这会持续几天/几周,然后我们再次遇到同样的问题

有人知道为什么会这样吗?这可能是SQL存储过程执行计划缓存的问题吗

任何帮助都将不胜感激


谢谢

您好,“未定义”是常见错误。正如您所说,从ssms执行SP是可以的。我认为在执行之后,您可能会在ajax中得到结果,在这里,您的jquery可能不会处理该结果。创建一个简单的测试存储过程,并从ajax调用它。我们会知道它是否会击中。另外,请确保sql连接和连接超时,谢谢。您好,谢谢您的评论。我们已经调试了代码,jquery不会抛出错误。当从.Net代码调用存储过程时,它实际上抛出了一个SqlException。SqlException的ErrorMessage中实际显示了错误消息“Cannotconvert'undefined'to int”。此外,并非所有存储过程都会出现此问题。此时,只有3个存储的进程以这种方式运行。需要注意的另一点是,在重新运行存储的proc脚本之后,这个问题在几周内得到了解决。我可以确认没有连接问题。不知道。希望您的问题尽快解决!并张贴你是如何解决这一问题的,这可能会对某人有所帮助。谢谢