현재 존재하는 Index 스크립트 생성.
T-SQL::List all indexes in database 에 관련 함수, view 생성해야함.
-- INDEX Script
SELECT
CASE WHEN T.TABLE_NAME IS NULL THEN
'CREATE '
+ CASE IS_UNIQUE WHEN 1 THEN ' UNIQUE' ELSE '' END
+ CASE IS_CLUSTERED WHEN 1 THEN ' CLUSTERED' ELSE '' END
+ ' INDEX [' + INDEX_NAME + '] ON [' + v.TABLE_NAME + ']'
+ ' (' + COLUMN_LIST + ') ON ' + FILE_GROUP
ELSE
'ALTER TABLE ['+T.TABLE_NAME+']'
+' ADD CONSTRAINT ['+INDEX_NAME+']'
+' PRIMARY KEY '
+ CASE IS_CLUSTERED WHEN 1 THEN ' CLUSTERED' ELSE '' END
+ ' (' + COLUMN_LIST + ')'
END
FROM
dbo.vAllIndexes v
LEFT OUTER JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS T
ON
T.CONSTRAINT_NAME = v.INDEX_NAME
AND T.TABLE_NAME = v.TABLE_NAME
AND T.CONSTRAINT_TYPE = 'PRIMARY KEY'
ORDER BY
v.TABLE_NAME,
IS_CLUSTERED DESC
'Database Administrator > T-SQL' 카테고리의 다른 글
| T-SQL::Attach (1) | 2009.12.01 |
|---|---|
| T-SQL::테이블 ROWCOUNT, 사이즈 (0) | 2009.11.27 |
| T-SQL::List all indexes in database (0) | 2009.11.19 |
| T-SQL::Total Disk Size 얻기 (OLE 사용) (1) | 2009.08.13 |