【发布时间】:2019-02-28 21:42:48
【问题描述】:
在启动一项 Windows 服务时,我可以看到以下错误。我在同一服务器中托管的一个 Web 应用程序中也看到错误。两者都连接到同一个数据库。过去两年它工作没有任何问题,并且事件查看器中突然出现这些错误
System.Data.SqlClient.SqlException: Could not find stored procedure
'psp_SDT_SRV_Insert'.
仅在“dgo”架构内连接存储过程时发生问题。但我可以访问“dbo”架构内的所有过程。
当我尝试创建 Windows 窗体应用程序并尝试访问同一个 SP 时,我没有遇到任何问题。所有这些应用程序都使用相同的连接字符串
连接字符串如下
<add name="connectionstring" connectionString="server=PGSI.PA.YA.NET\INST1;database=CustomerDB;integrated security = true" providerName="System.Data.SqlClient"/>
谁能建议如何解决这个问题?
【问题讨论】:
-
Schema 限定 sql 语句中的对象名称。示例:
dgo.psp_SDT_SRV_Insert -
。过去两年它一直在正常工作,但在事件查看器中突然出现这些错误。我最近没有进行任何代码更改
-
它在过去两年里一直运行没有任何问题,突然在事件查看器中出现这些错误。我真的很惊讶
-
您还可以更改用户/登录名的拥有架构或 Sql Server 中数据库中的默认架构(如果您不想更改代码)。
-
如果用户的默认架构发生更改,可能会发生这种情况。因为这是使用集成安全性,所以我们无法从此处提供的信息中看到实际是哪个用户。实际上是否有
dgo架构,它是否有目的?因为这听起来像是dbo的一个简单错字。试试select * from customerDB.sys.database_principals where default_schema_name='dgo'。
标签: sql asp.net .net sql-server connection-string