PS:代码中的括弧是不用的,直接换成你数据库的名字就成。
出现这个问题一般只有两个原因,一可能是.bak文件损坏,二可能你用高版本的备分SQL Server 数据库 的.bak文件想在低版本的SQL Server 上还原。有时候你装了多个版本的SQL Server 在同一台机子上,你想用高版的SQL Server 还原打开SQL Server Management Studio时连接却是低版本的SQL Server 服务,这种情况也无法还原成功,也是由于上面列的第二个原因,我机子上做了SQL Server 2008 和 SQL Server 2005,当时用SQL 2008的SQL Server Management Studio 连接时服务器名是默认名“XXXX-PC\SQLEXPRESS”时连接的总是SQL 2005的服务实例,.bak也因此始终会d”媒体簇的结构不正确“无法处理的错误,后来将连接时服务器名直接改为”XXXX-PC“就好了,当然这取决于你的安装SQL 2008 时服务设置。
你数据库有没有权限啊!你看一下!如果有的话更改表的所有者为dbo,可以在查询分析器里边执行如下语句:
exec sp_msforeachtable "sp_changeobjectowner '原所有者名称','dbo'"
注意这个只能更改表的所有者,存储过程可以这样修改:exec sp_changeobjectowner '所有者.存储过程名','dbo',还有视图等,并且只能一个表一个表的改。所说可以一下改,不过没试过从网上看的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)