我正在切换我的网络主机并备份我的数据库。由于我的新主机的一些限制,我无法恢复 .bak 文件,必须发送给他们以便他们恢复它。一旦他们恢复了它,我运行了我的应用程序,我得到了这个
System.Data.SqlClient.SqlException: Invalid object name "<table name>"
每当我尝试从应用程序查询表时。但是,我使用相同的用户名和密码通过 Management Studio 登录并查询表没有任何问题。
我正在使用 SQL Server 2008 运行 mvc 3 站点
有谁知道为什么我在尝试运行我的应用程序时可能会遇到这些异常?
EDIT:
更多信息:
我在旧数据库中使用的用户名是 Kimpo54321,因此我创建的所有表的前缀都是这样的 Kimpo54321。所以我尝试将它添加到我的网络应用程序中的第一个查询中,所以它是SELECT * FROM Kimpo54321.<tablename>
并且查询无异常地通过了。
现在,我不必在应用程序中的前面为每个表名称添加前缀,并且我不想将其应用于所有查询。有没有办法来解决这个问题?
EDIT:
我运行此命令以获得每个表的更改模式行并将所有内容更改为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')
您是否引用架构(例如 dbo.table 与 table)?新主机上的用户可能具有与旧主机上不同的默认架构。您如何“查询表” - 右键单击并选择选项之一,或者使用应用程序发出的完全相同的查询?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)