zoukankan      html  css  js  c++  java
  • SQL server 2005 如何批量修改架构名(包括表名和存储过程名)

    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   之前,编写现有权限的脚本。一旦更改了对象的所有权,可能要使用该脚本重新应用权限。在运行该脚本之前需要在权限脚本中修改对象所有者。有关编写数据库脚本的更多信息,请参见编写数据库文档和脚本。   


    批量修改请用:

    方法一:使用游标

    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 '?','新架构名'"

    如何在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 = '旧的架构名称'
  • 相关阅读:
    poj 2676 Suduku (dfs)
    poj 1562 Oil Deposits (dfs)
    poj 2907 Collecting Beepers (dfs)
    poj 1655 Balancing Act (树形dfs)
    poj 3411 Paid Roads (dfs)
    hdu 2896 病毒侵袭 (AC)
    hdu 3065 病毒侵袭持续中 (AC)
    poj 2251 Dungeon Master (bfs)
    java中debug使用
    Swing入门级小项目总结
  • 原文地址:https://www.cnblogs.com/lynnlin/p/1918315.html
Copyright © 2011-2022 走看看