在ms sql2005 下面删除一个数据库的用户的时候提示 "数据库主体在该数据库中拥有架构,无法删除" 的错误解决方案 1、在 安全性 -> 架构 下面看有没有该用户存在,如果有就删除 再试试在用户下面看能不能把该用户删掉,如果不行就用下面的文法 运行下SQL语句 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo; --然后手动删除就可以了。 因为选定的用户拥有对象,所以无法除去该用户"解决方法 复制代码 代码如下: use 你的库名 go declare tb cursor local for select "sp_changeobjectowner " +quotename( +quotename(user_name(uid)) +"."+quotename(name),"""") +",""dbo""" from sysobjects where objectproperty(id,N"isusertable")=1 and uid<>user_id("dbo") declare @s nvarchar(4000) open tb fetch tb into @s while @@fetch_status=0 begin exec(@s) fetch tb into @s end close tb deallocate tb
第三 方法一(华夏互联专业技术提示:因为涉及更改数据库存储过程,强制删除法不推荐) 首先你需要做的第一件事 企业管理器-〉选择服务器-〉属性-〉服务器设置-〉挑上允许对系统目录。。。-〉确定 第二步 找到你的数据库找到sysusers表那你以前的用户删除 第三步回去吧属***值改回来 第四部重建用户即可 方法二 对mssql出现选定的用户拥有对象而无法删除的处理 --将下面的代码在查询分析器中执行,修改修改库名 复制代码 代码如下: use 你的库名 go declare tb cursor local for select "sp_changeobjectowner " +quotename( +quotename(user_name(uid)) +"."+quotename(name),"""") +",""dbo""" from sysobjects where objectproperty(id,N"isusertable")=1 and uid<>user_id("dbo") declare @s nvarchar(4000) open tb fetch tb into @s while @@fetch_status=0 begin exec(@s) fetch tb into @s end close tb deallocate tb