我正在切换我的网络主机并备份我的数据库。由于我的新主机的一些限制,我无法恢复 .bak 文件,不得不发送给他们以便他们恢复它。一旦他们恢复它,我运行我的应用程序我得到了这个
System.Data.SqlClient.SqlException: Invalid object name "<table name>"
每当我尝试从应用程序查询表时。但是,我通过管理工作室使用相同的用户名和密码登录并查询表没有问题。
我正在使用 SQL Server 2008 运行 mvc 3 站点
有谁知道为什么我在尝试运行我的应用程序时可能会遇到这些异常?
编辑:
更多信息:
我在旧数据库中使用的用户名是 Kimpo54321,所以我创建的所有表都有这样的前缀 Kimpo54321。所以我尝试将它添加到我的网络应用程序中的第一个查询中,这样SELECT * FROM Kimpo54321.<tablename>
查询就会毫无例外地通过。
现在我不必在我的应用程序中为每个表名添加前缀,我不想将它应用于我的所有查询。有没有办法来解决这个问题?
编辑:
我运行它以获得每个表的更改模式行并将所有内容更改为dbo
并最终正常工作。谢谢亚伦为我指出正确的方向找到答案
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')