index의 생성일을 알 수가 있을까?? 결론은 pk 인덱스를 제외한 생성일, 수정일은 알 수 없다.  
만약 있다면 공유해주세요




use test_db3
go


--Read more at http://www.sqlpanda.com/2013/10/how-to-check-index-creation-date.html#xxYFSV24Fy1YhwBX.99
SELECT 
	object_name(i.object_id) as TableName, i.object_id, i.name, i.type_desc, i.is_disabled
	, o.create_date																-- 테이블 생성일
	, o.modify_date																-- 테이블 수정일
	, c.type_desc AS obj_desc
	, c.create_date AS obj_create_date
	, c.modify_date AS obj_modify_date
FROM   sys.indexes i
        INNER JOIN sys.objects o 
			ON i.object_id = o.object_id
		LEFT OUTER JOIN sys.objects c
			on i.name = c.name
WHERE o.type NOT IN ('S', 'IT')
	and o.is_ms_shipped = 0 
	and i.name is not null
ORDER BY create_date DESC

-------------------------------------------------------------------------------------------
-- test case setup
-------------------------------------------------------------------------------------------

-- index 없는 테이블
create table dbo.case1_Test
(
	a int not null,
	b int,
	c int
)
go

-- primary key + clustered index
create table dbo.case2_Test
(
	a int not null 
		constraint idx_case2_Test primary key,
	b int,
	c int
)
go

-- primary key + nonclustered index
create table dbo.case3_Test
(
	a int not null,
	b int,
	c int

	constraint idx_case3_Test primary key nonclustered
	(
		a
	)
)
go

-- nonclustered index
create table dbo.case4_Test
(
	a int not null,
	b int,
	c int
)
go

create index idx_case4_Test on dbo.case4_Test(a)
go

-- clustered index
create table dbo.case5_Test
(
	a int not null,
	b int,
	c int
)
go

create clustered index idx_case5_Test on dbo.case4_Test(a)
go


-------------------------------------------------------------------------------------------
-- 초기
-------------------------------------------------------------------------------------------

-- 위의 쿼리에서 보면 PK 속성일 경우만 생성, 수정일을 알 수가 있다.  이외에는 테이블 생성/수정만 알 수가 있음 
--TableName	object_id	name	type_desc	is_disabled	create_date	modify_date	obj_desc	obj_create_date	obj_modify_date
--case4_Test	1077578877	idx_case5_Test	CLUSTERED	0	2013-10-29 11:16:23.777	2013-10-29 11:28:15.087	NULL	NULL	NULL
--case4_Test	1077578877	idx_case4_Test	NONCLUSTERED	0	2013-10-29 11:16:23.777	2013-10-29 11:28:15.087	NULL	NULL	NULL
--case3_Test	1029578706	idx_case3_Test	NONCLUSTERED	0	2013-10-29 11:12:22.380	2013-10-29 11:12:22.380	PRIMARY_KEY_CONSTRAINT	2013-10-29 11:12:22.380	2013-10-29 11:12:22.380
--case2_Test	981578535	idx_case2_Test	CLUSTERED	0	2013-10-29 11:11:41.153	2013-10-29 11:11:41.153	PRIMARY_KEY_CONSTRAINT	2013-10-29 11:11:41.153	2013-10-29 11:11:41.153


-- case1_Test 테이블에 pk 속성을 추가해 보자. case1 table은 테이블에 인덱스와 PK가 없는 테이블이다.
alter table dbo.case1_Test
	add constraint idx_case1_Test primary key (a)
go

-- 테이블 생성일과 PK 속성일의 경우 생성일과 수정일 추가 했을 경우 확인이 가능하다. 추가적으로 table의 modify_date가 변경된 것을 확인 할 수 있다. 
--TableName	object_id	name	type_desc	is_disabled	create_date	modify_date	obj_desc	obj_create_date	obj_modify_date
--case1_Test	1109578991	idx_case1_Test	CLUSTERED	0	2013-10-29 11:32:37.010	2013-10-29 11:32:39.790	PRIMARY_KEY_CONSTRAINT	2013-10-29 11:32:39.787	2013-10-29 11:32:39.787	 

-- 삭제
alter table dbo.case1_Test
	drop constraint idx_case1_Test 
go

select *
from sys.objects
where name = 'case1_Test'

-- PK 속성을 제거 했을 경우 테이블 modify_date값이 수정된다.  ( modify_date msdn : ALTER 문을 사용하여 개체를 마지막으로 수정한 날짜입니다. )
--name	object_id	principal_id	schema_id	parent_object_id	type	type_desc	create_date	modify_date	is_ms_shipped	is_published	is_schema_published
--case1_Test	1109578991	NULL	1	0	U 	USER_TABLE	2013-10-29 11:32:37.010	2013-10-29 11:34:58.560	0	0	0

create index idx_case1_Test on dbo.case1_Test( a)

select *
from sys.objects
where name = 'case1_Test'

-- 인덱스를 생성했을 경우에도 table object의 modify_date 값이 변경된다. 인덱스 생성일을 알 수 있는 방법은 없어 보인다.
--TableName	object_id	name	type_desc	is_disabled	create_date	modify_date	obj_desc	obj_create_date	obj_modify_date
--case1_Test	1109578991	idx_case1_Test	NONCLUSTERED	0	2013-10-29 11:32:37.010	2013-10-29 11:38:44.917	NULL	NULL	NULL