【问题标题】:Why SQL Server stored procedure runs in live database but not in local pc?为什么 SQL Server 存储过程在实时数据库中运行而不在本地 PC 中运行?
【发布时间】:2012-06-10 07:13:35
【问题描述】:

我已经创建了一个存储过程:

CREATE PROCEDURE usp_PettyCash_GetSingleUserInfo 
(
    @MaerskID varchar(50)  
)
AS
BEGIN  
    SELECT ISNULL(MaerskID,'') AS UniqueID, ISNULL(FirstName,'') AS FirstName, ISNULL(MiddleName,'') AS MiddleName, ISNULL(LastName,'') AS LastName, ISNULL(EmployeeType,'') AS EmployeeType
    FROM Users a 
    LEFT OUTER JOIN t_PettyCash_EmployeeInfo b ON a.MaerskID = b.UniqueID
    WHERE a.MaerskID = @MaerskID 
END 
GO 

它在我的实时数据库服务器中运行良好。为了进行一些修改,我备份了我的数据库并将其恢复到我的本地电脑中。问题是,当我从本地电脑运行我的网络应用程序时,它给出了异常,

找不到存储过程“usp_PettyCash_GetSingleUserInfo”

我给了我电脑的数据库用户管理员权限,但它仍然给出了错误。我不确定实际上是什么问题。我不认为问题出在我的代码中,因为当我连接到我的实时数据库时,一切都很好。请帮忙。当然,我首先在本地 pc 中测试了存储过程,然后再使用 live DB。那个时候一切正常,但现在不行了。

我正在使用 SQL Server 2000 企业版和 VS2005 ASP.Net & C# 2.0。

【问题讨论】:

  • 它要么不存在,要么它的权限,或者您指向错误的数据库。
  • ... 或其他默认模式。将您的创建更改为 CREATE PROCEDURE dbo.usp_... 并将 dbo. 包含到您对过程的调用中。

标签: asp.net sql sql-server-2000


【解决方案1】:

解决这个问题。

1.)删除现有的 SP。

2.)创建新的 SP。

现在你会得到结果。我也遇到过这个问题,但这个技巧对我有用。还有一个请检查两端的 SQL 服务器。

希望对你有帮助

【讨论】:

  • 我希望获得一种替代方式,而不是删除和创建 SP。我已经这样做了以解决问题。我希望有一个更好的解决方案来解决这个问题。但是,我会给你一个赞成票。
  • 创建存储过程时请注意数据库中选择的数据库
  • OK,让一个测试创建另一个具有相同查询但名称不同的测试 SP 调用此 SP。
猜你喜欢
  • 2015-09-05
  • 2011-07-28
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
相关资源
最近更新 更多