SQL Server2005可以使用系统存储过程sp_changeobjectowner更改数据库对象的所有者。

sp_changeobjectowner 用于更改当前数据库中对象的所有者。
sp_changeobjectowner '对象名(包括架构名)','新架构名'
   
  语法  
  sp_changeobjectowner   [   @objname   =   ]   'object'   ,   [   @newowner   =   ]   'owner'  
  参数  
  [@objname   =]   'object'  
  当前数据库中现有的表、视图或存储过程的名称。object   的数据类型为   nvarchar(517),没有默认值。object   可用现有对象所有者限定,格式为   existing_owner.object。  
  [@newowner   =]   'owner'  
  即将成为对象的新所有者的安全帐户的名称。owner   的数据类型为   sysname,没有默认值。owner   必须是当前数据库中有效的   Microsoft®   SQL   Server™   用户或角色或   Microsoft   Windows   NT®   用户或组。指定   Windows   NT   用户或组时,请指定   Windows   NT   用户或组在数据库中已知的名称(用   sp_grantdbaccess   添加)。  
  返回代码值  
  0(成功)或   1(失败)  
  注释  
  对象所有者(或拥有对象的组或角色的成员)对对象有特殊的权限。对象所有者可以执行任何与对象有关的   Transact-SQL   语句(例如   INSERT、UPDATE、DELETE、SELECT   或   EXECUTE),也可以管理对象的权限。  
  如果拥有对象的安全帐户必须要除去,但同时要保留该对象,请使用   sp_changeobjectowner   更改对象所有者。该过程从对象中删除所有现有权限。在运行   sp_changeobjectowner   之后,需要重新应用要保留的任何权限。  
  由于这个原因,建议在运行   sp_changeobjectowner   之前,编写现有权限的脚本。一旦更改了对象的所有权,可能要使用该脚本重新应用权限。在运行该脚本之前需要在权限脚本中修改对象所有者。有关编写数据库脚本的更多信息,请参见编写数据库文档和脚本。

批量修改请用:

方法一:使用游标

  1. declare @name sysname
  2. declare csr1 cursor
  3. for select TABLE_NAME from INFORMATION_SCHEMA.TABLES
  4. open csr1
  5. FETCH NEXT FROM csr1 INTO @name
  6. while (@@FETCH_STATUS=0)
  7. BEGIN
  8. SET @name='原架构名.'+@name
  9. EXEC SP_ChangeObjectOwner @name, '新架构名'
  10. fetch next from csr1 into @name
  11. END
  12. CLOSE csr1
  13. DEALLOCATE csr1
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
EXEC SP_ChangeObjectOwner @name, '新架构名'
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1 

方法二:使用系统存储过程sp_MSforeachtable

EXEC sp_MSforeachtable @command1="EXEC SP_ChangeObjectOwner '?','新架构名'"  
EXEC sp_MSforeachtable @command1="EXEC SP_ChangeObjectOwner '?','新架构名'"

如何在SQL 2005中批量修改存储过程的架构。

执行以下SQL,将执行结果拷贝出来,批量执行既可。

SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + p.Name   
  1. FROM sys.Procedures p INNER JOIN sys.Schemas s on p.schema_id = s.schema_id
  2. WHERE s.Name = '旧的架构名称'

转载于:https://www.cnblogs.com/nightly/archive/2012/12/15/2819103.html

SQL server 2005 如何批量修改架构名(包括表名和存储过程名) .相关推荐

  1. 20110125 学习记录:在SQL Server 2005数据库中修改存储过程

    我农民了,在sqlserver2005里面修改了存储过程后居然不知道咋保存... 因为一保存就相当于save as为本地文件了 查了一下,简单的要死,只要把修改后的存储过程execute一下就ok了~ ...

  2. SQL Server 2005 中的商务智能和数据仓库

    微软发布了SQL Server 2005,对于微软与BI来说这是一个非常重要的版本,它完善了微软在BI方面的产品线.SQL Server 2005以及 Visual Studio .net2005的整 ...

  3. SQL Server 2005全文检索技术在网站上的应用实录

    SQL Server 2005全文检索技术在网站上的应用实录 一.前言 "人类失去搜索,世界将会怎样?",同样,很难想象一个拥有极大信息量的行业网站门户没有站内全文搜索将会出现怎样 ...

  4. SQL Server 2005的商务智能和数据仓库

    摘要:本文概述了 SQL Server 2005 Beta 2 中"商务智能"平台的增强功能.本文并非实施指南,而是为读者提供了关于"商务智能"平台增强功能的信 ...

  5. Eclipse如何连接SQL Server 2005数据库

    做管理系统当然少不了经常与数据库打交道,在网上搜了很多数据库版本都不小,大的有好几个G的,小的也有几百兆的,我这可怜的内存,最终找了个精简版中的精简版的Sql server2005,只有80几兆,本来 ...

  6. 回首经典的SQL Server 2005

    回首经典的SQL Server 2005 原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com SQL Server是我使用时间最长的数据库,算起来已经有10年了.上世 ...

  7. 在Sql Server 2005使用公用表表达式CTE简化复杂的查询语句

    公用表表达式CTE是Sql Server 2005引入的一种新的表表达式.CTE在许多方面都类似于派生表.逻辑上CTE是一个临时结果集,它仅仅存在于它发生的语句中.您可以在SELECT.INSERT. ...

  8. MSSQL 2005 如何批量修改表的架构SQL Server - 海狼工作室 - 杨远 - 和讯博客

    SQL 2005 如何批量修改表和存储过程的架构 首先需要在要修改的库的安全选择中对其中的架构项添加一个新的架构所有者 1.先说说如何在SQL 2005中批量修改存储过程的架构. 执行以下SQL,将执 ...

  9. SQL Server 2005登录名,用户名,角色,架构之间的关系

    SQL Server 2005对2000进行了很大的改进,而用户关系这部分也变得相当复杂了,很多朋友都对此一知半解!下面,我将把我应用中总结的和大家分享下,先从概念入手,希望对不理解的朋友有点提示. ...

最新文章

  1. 电脑新安装JDK版本并运行使用该JDK版本问题
  2. datetime建立索引有用吗_超全的数据库建表、SQL、索引规范
  3. Python学习——常见的字符串匹配
  4. linux杀掉80端口线程命令
  5. Python strip lstrip rstrip使用方法(字符串处理空格)
  6. 简单MFC程序开发-C++反编译肉鸡养成
  7. 腾讯浏览器(X5WebView的使用)
  8. 网购火车票全攻略(新手+进阶+高手级)
  9. docker启动redis指定redis.conf参数
  10. 2018高中计算机竞赛,最新 | 2018年高中生各项竞赛时间一览表
  11. 做一个靠谱的软件测试工程师:进行有效地沟通
  12. java8 forkjoinpool_Java 普通线程池与 ForkJoinPool 的效果对比
  13. 微信公众号和微信小程序进程名获取及配置
  14. CentOS7.4离线安装Openssh7.9p1
  15. 中国最大在线保健品供应商“健康中国”停业
  16. java导入excel时去除空行,使用VBA将空行复制到新工作表后删除Excel中的空行
  17. 液晶面板里面有些什么配件_液晶面板的种类有哪些
  18. 设计模式---适配器模式(springMvc中HandlerAdapter 的误区)
  19. Oracle日常性能查看
  20. 针对大学城的二手书市场

热门文章

  1. 修理计算机英语,英语口语对话:修理电脑
  2. 8年web前端开发老程序员告诉你如何零基础学习web前端
  3. 零基础web前端和python哪个好学一些?
  4. 太真实了!有个程序员男友原来是这样的!
  5. SSM框架搭建过程----学生学籍管理系统
  6. 上传身份证照片js_国际快递为什么需要上传身份证,怎么上传?
  7. mysql影响行数解析_详解MySQL的数据行和行溢出机制
  8. oracle 赋予dorp,oracle表空间(tablespace)的增删改查(create/drop/rename,move/select)
  9. 实现元素拖拽放大缩小_Vue实战067:DOM元素拖拽效果的实现
  10. python定义一个函数列表排序_Python 列表(修改、添加、删除、排序)