Asp.net &引用;无效的对象名称";恢复SQL Server 2008数据库后
我正在切换我的网络主机并备份我的数据库。由于新主机的一些限制,我无法还原.bak文件,必须发送给他们,以便他们还原它。一旦他们恢复了它,我运行我的应用程序,我得到了这个Asp.net &引用;无效的对象名称";恢复SQL Server 2008数据库后,asp.net,sql-server,sql-server-2008,exception,invalid-object-name,Asp.net,Sql Server,Sql Server 2008,Exception,Invalid Object Name,我正在切换我的网络主机并备份我的数据库。由于新主机的一些限制,我无法还原.bak文件,必须发送给他们,以便他们还原它。一旦他们恢复了它,我运行我的应用程序,我得到了这个 System.Data.SqlClient.SqlException:无效的对象名“” 每当我试图从应用程序中查询表时。但是,我可以使用相同的用户名和密码通过ManagementStudio登录并查询表 我正在用SQLServer2008运行一个MVC3站点 有人知道为什么我在尝试运行应用程序时会遇到这些异常吗 编辑: 更多信息
System.Data.SqlClient.SqlException:无效的对象名“”
每当我试图从应用程序中查询表时。但是,我可以使用相同的用户名和密码通过ManagementStudio登录并查询表
我正在用SQLServer2008运行一个MVC3站点
有人知道为什么我在尝试运行应用程序时会遇到这些异常吗
编辑:
更多信息:
我在旧数据库中使用的用户名是Kimpo54321,因此我创建的所有表都有类似于Kimpo54321的前缀。因此,我尝试将其添加到我的web应用程序的第一个查询中,使其成为来自Kimpo54321的SELECT*。
,并且查询毫无例外地通过
现在,我不必在我的应用程序的前面为每个表名加上前缀,我也不想将它应用于所有查询。有办法解决这个问题吗
编辑:
我运行此命令以获得每个表的alter schema行,并将所有内容更改为dbo
,它最终可以工作。thnx aaron为我指出了正确的方向找到了答案
SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + o.Name
FROM sys.Objects o
INNER JOIN sys.Schemas s on o.schema_id = s.schema_id
WHERE s.Name = 'yourschema'
And (o.Type = 'U' Or o.Type = 'P' Or o.Type = 'V')
这可能是一个需要将Web应用程序的用户重新添加到还原数据库中的问题。将数据库还原到其他sql server上时,某些用户不保留其权限。是否引用架构(例如dbo.table vs.table)?新主机上的用户可能与旧主机上的用户具有不同的默认架构。您是如何“查询表格”的?右键单击并选择其中一个选项,还是使用应用程序发出的完全相同的查询?Ah yes在发布您的答案时正在编辑我的问题。现在一切都开始有意义了,我在ManagementStudio select top 1000中右键单击了一个表,事实上,它在表名前面加了旧模式(kimpo54321)。我尝试在ManagementStudio菜单树中的Logins文件夹中单击,并尝试在用户映射中添加kimpo54321模式。我收到一条错误消息“cannotalteruserdbo”,当我尝试添加这两个模式时,什么也没有发生,默认模式仍然是dbo。如何改变这一点?