모든 테이블의 소유자를 dbo 로 바꾸어 주는 프로시져
페이지 정보
작성자 서방님 댓글 0건 조회 157회 작성일 06-11-02 10:34본문
USE MASTER
GO
IF OBJECT_ID ('SP_CHANGEOBJECTOWNER_MS ') IS NOT NULL
DROP PROC SP_CHANGEOBJECTOWNER_MS
GO
CREATE PROC SP_CHANGEOBJECTOWNER_MS
(
@OBJECTOWNER VARCHAR(100)
)
AS
-- SP_CHANGEOBJECTOWNER_MS 'KIMMS'
-- 모든 테이블의 소유자를 DBO 로 변경시켜 주는 프로시져입니다.
-- 만든이 석이
-- 20060506
SET NOCOUNT ON
DECLARE @UID VARCHAR(10)
DECLARE @RETURN_VALUE INT
DECLARE @COMMAND1 NVARCHAR(2000)
DECLARE @WHEREAND NVARCHAR(2000)
DECLARE @OCNT INT
SELECT @OCNT = COUNT(*) ,@UID = MAX(O.UID)
FROM
SYSUSERS U
INNER JOIN SYSOBJECTS O
ON U.UID = O.UID
WHERE
U.NAME = @OBJECTOWNER
AND OBJECTPROPERTY(O.ID, N'ISUSERTABLE') = 1
IF (@OCNT IS NOT NULL AND @OCNT > 0) BEGIN
SET @COMMAND1 = 'EXEC SP_CHANGEOBJECTOWNER ''?'', ''DBO'''
SET @WHEREAND ='AND O.UID=' + @UID
EXEC @RETURN_VALUE = SP_MSFOREACHTABLE @COMMAND1=@COMMAND1, @WHEREAND =
@WHEREAND
SELECT CASE @RETURN_VALUE WHEN 0 THEN UPPER(@OBJECTOWNER)+' ----> DBO 작업완료'
END
END ELSE BEGIN
SELECT UPPER(@OBJECTOWNER)+' ----> DBO 작업할 테이블이 없습니다.'
END
GO
use 해당디비
go
-- 아래 실행예제는 kimms 소유의 모든 테이블을 dbo 로 바꾸어 줍니다.
SP_CHANGEOBJECTOWNER_MS 'KIMMS'
댓글목록
등록된 댓글이 없습니다.