대량 수정 데이터베이스 또는 저장 프로세스의 소유자

5280 단어 저장 프로세스
테이블의 사용자 변경 ([사용자 이름]. 테이블 이름)
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'

좋은 웹페이지 즐겨찾기