惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
爱范儿
爱范儿
The Cloudflare Blog
Y
Y Combinator Blog
B
Blog RSS Feed
Stack Overflow Blog
Stack Overflow Blog
博客园 - 叶小钗
G
Google Developers Blog
J
Java Code Geeks
P
Proofpoint News Feed
美团技术团队
Engineering at Meta
Engineering at Meta
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
有赞技术团队
有赞技术团队
L
LangChain Blog
N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】

博客园 - 蹲在路边写代码

8000401a错误解决方案(Office Word,Excel,PowerPoit应用程序无法访问) 遍例指定目录及子目录下的所有文件添加进数据库 改善SQL语句的效率的几条原则,不断积累中 一些常用的WebServices 转Javascript的IE和Firefox兼容性汇编 - 蹲在路边写代码 - 博客园 转--使用 Request.QueryString 接受参数时,跟编码有关的一些问题 - 蹲在路边写代码 IE的showModalDialog与FireFox的window.open 父子窗口传值示例 三种常见选项卡效果 - 蹲在路边写代码 - 博客园 C#高级编程学习笔记(五)字符串与正则表达式 C#高级编程学习笔记(四) 内存管理和指针 SQL SELECT 语句完整的执行顺序 C#高级编程学习笔记(三)委托和事件 C#高级编程学习笔记(二)运算符和类型转换 C#高级编程学习笔记(-)C#基础 对象和类型 继承 构造函数和析构函数的原理及在C#中的运用(转载) CSS在IE与Firefox下的兼容性 CSS Hack 汇总 .NET的ORM工具SubSonic2.03的配置 ASP.NET的页面间传值方法 - 蹲在路边写代码 - 博客园
SQL Server 2005 无法删除用户的解决方法
蹲在路边写代码 · 2012-07-09 · via 博客园 - 蹲在路边写代码

一个数据库,运行在SQL Server 2005下,数据库用户无法删除,在删除时提示“数据库主体在该数据库中拥有架构,无法删除”。

 原因很简单,就是由于此用户在数据库中拥有某些架构的所有权,将相关架构的用户权限移除或删除架构即可。 

    此处以一个用户nsm为例,说明具体应进行的操作,注意以下方面:
附加好了 数据库:
1:数据库cdb --》在“安全性”-“角色”-“数据库角色”下,删除nsm用户。
2:数据库cdb --》在“安全性”-“用户--》删除nsm用户
    做完这几步,基本没有其它问题了,能够顺利地删除无效的数据库用户。
3、 安全性 --->登陆名---?新建用户 就好了

先删除此用户对应的架构,然后在删除对应的用户
步骤
1、SQL SERVER MANAGEMENT STUDIO--》数据库--》安全性--》构架,先删除对应的构架
2、SQL SERVER MANAGEMENT STUDIO--》数据库--》安全性--》用户,删除对应的用户
有时候这样并不能解决问题,因为此操作的第一步就实现不了,无法删除那个用户所有的架构。

--执行如下SQL语句
Alter   AUTHORIZATION   ON   SCHEMA::db_owner   TO   dbo; 
--然后手动删除就可以了。

另附:批量修改表架构

SQL 2005 如何批量修改表和存储过程的架构
首先需要在要修改的库的安全选择中对其中的架构项添加一个新的架构所有者
1。先说说如何在SQL 2005中批量修改存储过程的架构
执行以下SQL,将执行结果拷贝出来,批量执行既可。
SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + p.Name 
FROM sys.Procedures p INNER JOIN sys.Schemas s on p.schema_id = s.schema_id 
WHERE s.Name = '旧的架构名称'

2。再说说如何在SQL 2005中批量修改表的架构
执行以下SQL,将执行结果拷贝出来,批量执行既可。
declare @name sysname
declare csr1 cursor
for 
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
open csr1
FETCH NEXT FROM csr1 INTO @name
while (@@FETCH_STATUS=0)
BEGIN
SET @name='旧的架构名称.' + @name
print 'ALTER SCHEMA dbo(新的架构名称) TRANSFER ' + @name
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1