* Table 소유자 변경
DECLARE @old sysname, @new sysname, @sql varchar(1000)
SELECT
@old = '이전 소유자명'
, @new = 'dbo'
, @sql = '
IF EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLES
WHERE
QUOTENAME(TABLE_SCHEMA)+''.''+QUOTENAME(TABLE_NAME) = ''?''
AND TABLE_SCHEMA = ''' + @old + '''
)
EXECUTE sp_changeobjectowner ''?'', ''' + @new + ''''
EXECUTE sp_MSforeachtable @sql
* View 소유자 변경
결과로 출력되는 내용을 C&P 해서 쿼리창에서 다시 실행
DECLARE @old_view_owner sysname, @new_view_owner sysname
SELECT
@old_view_owner = '이전 소유자명'
, @new_view_owner = 'dbo'
select 'EXECUTE sp_changeobjectowner '''+QUOTENAME(a.TABLE_SCHEMA)+'.'+QUOTENAME(a.TABLE_NAME)+''','''+@new_view_owner+''''
from
INFORMATION_SCHEMA.VIEWS a
where
a.TABLE_SCHEMA = @old_view_owner
AND
OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.TABLE_SCHEMA)+'.'+QUOTENAME(a.TABLE_NAME)), 'IsMSShipped') = 0
* 저장프로시저 소유자 변경
결과로 출력되는 내용을 C&P 해서 쿼리창에서 다시 실행
DECLARE @old_sp_owner sysname, @old_new_owner sysname
SELECT
@old_sp_owner = '이전 소유자명'
, @old_new_owner = 'dbo'
select 'EXECUTE sp_changeobjectowner '''+QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.ROUTINE_NAME)+''','''+@old_new_owner+''''
from
INFORMATION_SCHEMA.ROUTINES a
where
a.ROUTINE_TYPE = 'PROCEDURE'
AND a.SPECIFIC_SCHEMA = @old_sp_owner
AND
OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.ROUTINE_NAME)), 'IsMSShipped') = 0
'프로그래밍 TIP > SQL' 카테고리의 다른 글
[SQL Server] 다이어그램 복사 (0) | 2015.08.21 |
---|---|
H2 DB Multi Connection 설정 (0) | 2015.08.03 |
Toad 를 저격할 수 있을까? 프리웨어 DBeaver (0) | 2015.08.03 |
[Oracle] 오라클 서버 IP 변경시, 설정 변경해주어야 하는 것들 (0) | 2013.03.04 |
SHP 파일 Oracle Table 로 생성하기 (0) | 2011.04.11 |