반응형
다음 예에서는 EXECUTE가 변수가 포함된 동적으로 작성된 문자열을 처리하는 방법을 보여 줍니다. 이 예에서는 AdventureWorks2008R2 데이터베이스에 있는 모든 사용자 정의 테이블의 목록을 유지하는 tables_cursor 커서를 만든 다음 해당 목록을 사용하여 테이블의 모든 인덱스를 다시 작성합니다.
USE AdventureWorks2008R2;
GO
DECLARE tables_cursor CURSOR
FOR
SELECT s.name, t.name
FROM sys.objects AS t
JOIN sys.schemas AS s ON s.schema_id = t.schema_id
WHERE t.type = 'U';
OPEN tables_cursor;
DECLARE @schemaname sysname;
DECLARE @tablename sysname;
FETCH NEXT FROM tables_cursor INTO @schemaname, @tablename;
WHILE (@@FETCH_STATUS <> -1)
BEGIN;
EXECUTE ('ALTER INDEX ALL ON ' + @schemaname + '.' + @tablename + ' REBUILD;');
FETCH NEXT FROM tables_cursor INTO @schemaname, @tablename;
END;
PRINT 'The indexes on all tables have been rebuilt.';
CLOSE tables_cursor;
DEALLOCATE tables_cursor;
GO반응형
'데이터베이스' 카테고리의 다른 글
| [SQL서버] OpenQuery를 사용한 INSERT, UPDATE, DELETE 처리 (0) | 2011.12.07 |
|---|---|
| [SQL서버] EXECUTE를 사용하여 연결된 서버의 Oracle 데이터베이스 쿼리 (0) | 2011.11.29 |
| Oracle 제약조건 걸린 테이블 확인 (0) | 2011.11.02 |
| [SQL서버] ROW_NUMBER() 함수 (0) | 2011.09.02 |
| SQL서버 2008 백업 (0) | 2011.08.25 |