【发布时间】:2014-11-17 20:31:52
【问题描述】:
我可以将我的存储过程的“胆量”作为一个巨大的查询来运行。在 SQL Management Studio 中就可以了。此外,我什至可以从 SQL Management Studio 右键单击并“执行”存储过程 - .. 你知道 .. 将其作为存储过程运行。
当我的 ASP.NET MVC 应用程序运行这个存储过程时,我遇到了问题..
System.Data.SqlClient.SqlException:无效的对象名称“#AllActiveOrders”。
运行 ASP.NET 的模拟帐户是否需要特殊权限?不可能……即使我从我的 Visual Studio 本地运行它(在我的登录帐户下),我也会收到临时表错误消息。
编辑:此外,当从一个 ASP.NET 应用程序(使用 WCF 服务/ADO.NET 调用存储过程)调用时,它似乎工作正常,但 不 从不同的 ASP.NET 应用程序(直接使用 ADO.NET 调用存储过程)
FURTHERMORE:不崩溃的 MVC 应用程序,确实将一些参数传递给存储过程,而崩溃的应用程序使用默认参数运行存储过程(不传递任何参数) . FWIW - 当我在 SQL Mgt 中运行存储过程时。 Studio,它带有默认参数(并且不会崩溃)。
如果它有任何价值,我确实必须在这种情况之前修复“字符串或二进制数据将被截断”问题。我进入了这个庞大的查询并修复了我知道是问题的诱人定义(一个不同的定义)(因为我大约一天前刚刚编辑过它)。我能够在 SQL Mgt 中看到“字符串/二进制截断”问题。 Studio / 以及解决 SQL Mgt Studio 中的问题。但是,我真的很困惑为什么我在 SQL Mgt 中看不到“无效的对象名称”问题。工作室
【问题讨论】:
-
您确定 MVC 应用程序正在运行相同的存储过程吗?不是不同的实例,数据库?用户是否解析到相同的架构?
-
感谢@ShannonSeverance 的提问,我刚刚验证过:我的 MVC/WCF 应用程序可以运行 DEV 和 PROD 版本的存储过程而不会出现错误。我的其他 MVC 应用程序在 DEV 和 PROD 数据库上崩溃。应用程序调用存储过程的方式之间存在差异,我将添加到我的问题中
标签: asp.net sql-server stored-procedures temp-tables