zoukankan      html  css  js  c++  java
  • sql server 批量修改表和存储过程的所有者。

    批量修改表的所有者:  
      EXEC   sp_MSforeachtable   'exec   sp_changeobjectowner   ''?'',''dbo''   '  
      单个修改表所有者:  
      exec   sp_changeobjectowner   '要改的表名','dbo'  


    批量修改存储过程的存储过程:

    CREATE   PROCEDURE   ChangeProcOwner   
      @OldOwner as   NVARCHAR(128),--参数原所有者   
      @NewOwner as   NVARCHAR(128)--参数新所有者   
      AS   
       
      DECLARE   @Name   as   NVARCHAR(128)     
      DECLARE   @Owner as   NVARCHAR(128)   
      DECLARE   @OwnerName as   NVARCHAR(128)   
       
      DECLARE   curObject   CURSOR   FOR     
      select 'Name' =   name,   
      'Owner' =   user_name(uid)   
      from   sysobjects   
      where   user_name(uid)=@OldOwner   and   xtype='p'   
      order   by   name   
       
      OPEN     curObject   
      FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner   
      WHILE(@@FETCH_STATUS=0)   
      BEGIN           
      if   @Owner=@OldOwner     
      begin   
      set   @OwnerName   =   @OldOwner   +   '.'   +   rtrim(@Name)   
      exec   sp_changeobjectowner   @OwnerName,   @NewOwner   
      end   
       
      FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner   
      END   
       
      close   curObject   
      deallocate   curObject   
      GO

    执行 exec   ChangeProcOwner   'xx','dbo'
    或者
    exec   ChangeProcOwner   '?','dbo'

    还有一种方法:

    --如果一个数据库中(表和存储过程)有多个用户名,而要把它所有都改成dbo 就可以用如下的语句
    Select 'sp_changeobjectowner ''' + User_Name(Uid) + '.' + name + ''',''dbo'' ' From sysobjects Where Uid Not in (User_ID('dbo')) And Type In ('U','P')
    --然后把查询出来的语句拷贝出来,直接运行就表和存储过程的对象都会改过来,但SQL SERVER要先退出来,再进去,才能看到更改后的结果

  • 相关阅读:
    static final常量变量的正确书写规范
    Why aren't more desktop apps written with Qt?(quora.com系列文章)
    建议学个一知半解的时候,再看书
    C++中new和delete的背后(最后还是调用了MSVCR90的malloc)
    关于Qt的事件循环以及QEventLoop的简单使用(QEventLoop::quit()能够终止事件循环,事件循环是可以嵌套的)
    QProcess::startDetached(5.10有了一种新的方式)
    微信公众号支付开发
    Middleware

    TOKEN+签名验证
  • 原文地址:https://www.cnblogs.com/allanyang/p/765315.html
Copyright © 2011-2022 走看看