zoukankan      html  css  js  c++  java
  • 批量修改数据库或存储过程的所有者

    更改某个表的用户([用户名].表名)

    exec sp_changeobjectowner 'tablename','dbo'

    --存储更改全部表

    CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
    @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
    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
    -- select @name,@NewOwner,@OldOwner
    
    FETCH NEXT FROM curObject INTO @Name, @Owner
    END
    
    close curObject
    deallocate curObject
    
    
    GO

    存储过程使用方法不用说了吧
    在SQL查询分析器里输入
    User_ChangeObjectOwnerBatch 'olduser','newuser'

  • 相关阅读:
    第几天?
    农历02__资料
    农历01
    VC6_预编译头
    QWebEngine_C++_交互
    Qt570_CentOS64x64_02
    Qt570_CentOS64x64_01
    QWebEngineView_CssVariables
    Windows__书
    Win7SDK
  • 原文地址:https://www.cnblogs.com/Chaser-Eagle/p/3684892.html
Copyright © 2011-2022 走看看