sqlserver 此数据库没有有效所有者错误的解决方法
在调试程序的某个寻常日子,我遭遇了数据库领域的一个棘手问题。当我试图附加数据库并添加关系表时,却遇到了类似于狼蚁网站SEO优化的错误提示。数据库没有有效所有者,无法安装数据库关系图支持对象。为了解决这个问题,我开始了漫长的之旅。
我尝试使用“数据库属性”对话框的“文件”页来更改数据库所有者,但这种方法并未奏效,即使数据库文件的所有者是sa也无法改变现状。在CSDN社区中,有用户建议使用SSMS(SQL Server Management Studio)来解决这个问题。他们建议我在SSMS中运行特定的命令来更改数据库的所有者。
我按照指示,在SSMS中运行了如下命令:
```sql
Alter AUTHORIZATION ON database::mydbname TO sa
```
尽管我在新建查询里成功执行了这个命令,问题却仍未解决。这时,我心中萌生了重新格式化系统的想法。重新格式化系统无疑会带来诸多麻烦,于是我选择通过百度寻找解决方案。
在一个论坛中,我发现了两种可能的解决方法:
方法一:调整数据库的兼容级别。具体步骤如下:
1. 使用以下命令设置兼容级别为90(对应于SQL Server 2005):
```sql
USE [master]
GO
EXEC dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90
GO
```
执行完这个命令后,我尝试点击“数据库关系图”,遇到了提示“此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建”。我选择了“是”,问题竟然解决了。
方法二:选择还原的数据库,右键点击选择属性,然后进入选项,选择兼容级别为sqlserver2005(90),然后确定。使用这种方法,我也成功地解决了问题。
如果以上方法依然无法解决问题,我还可以选择以下方法:选择数据库,然后进入"安全性"-"用户",选择dbo,打开属性页。如果登录名为空的话,可以新建查询,然后运行以下命令:
```sql
use [你的数据库名]
EXEC sp_changedbowner 'sa'
```
执行成功后,再次选择"数据库关系图"节点时,就会提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建”,选择“是”即可。这时,原本无法看到的关系图就会显示出来。
这个问题可能源于数据库是在SQL Server 2000上创建,然后在SQL Server 2005上附加导致的兼容性问题。经过上述步骤,我终于解决了这个问题,可以顺利地进行数据库操作了。
编程语言
- sqlserver 此数据库没有有效所有者错误的解决方法
- JavaScript中的标签语句用法分析
- jquery 手势密码插件
- PHP中header用法小结
- php计算整个mysql数据库大小的方法
- 基于PHP实现商品成交时发送短信功能
- php三元运算符知识汇总
- Ajax异步请求JSon数据(图文详解)
- nginx部署访问vue-cli搭建的项目的方法
- thinkphp常见路径用法分析
- php中print(),print_r(),echo()的区别详解
- asp去除所有的超级链接的两种方法 替换与正则
- 详解Vue开发微信H5微信分享签名失败问题解决方案
- ajax实现点击不同的链接让返回的内容显示在特定
- jQuery实现页面点击后退弹出提示框的方法
- MSSQL2005数据附加失败报错3456解决办法