/*
SQL 서버 메타데이터 정보 가져오는 방법
1. 시스템 저장 프로시져 사용 방법(권고, 메타 데이터를 가져오기 위해서는 시스템 저장 프로시져, 시스템 함수, 시스템 제공 뷰
2. INFORMATION 스키마 뷰 사용 방법
*/
SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
/*
결과 정보 반환
Northwind dbo Customers CustomerID 1 NULL No nchar 5 10 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers CompanyName 2 NULL No nvarchar 40 80 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers ContactName 3 NULL YES nvarchar 30 60 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers ContactTitle 4 NULL YES nvarchar 30 60 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers Address 5 NULL YES nvarchar 60 120 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers City 6 NULL YES nvarchar 15 30 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers Region 7 NULL YES nvarchar 15 30 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers PostalCode 8 NULL YES nvarchar 10 20 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers Country 9 NULL YES nvarchar 15 30 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers Phone 10 NULL YES nvarchar 24 48 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
Northwind dbo Customers Fax 11 NULL YES nvarchar 24 48 NULL NULL NULL NULL NULL NULL Unicode NULL NULL Korean_Wansung_CI_AS NULL NULL NULL
*/
SQL SERVER 2000에서 제공하는 INFORMATION 스키마 뷰
CHECK_CONSTRAINTS
COLUMNS
DOMAINS
......
-- 기본으로 제공하는 INFORMATION 스키마 뷰 활용
USE pubs
GO
SELECT * FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS
GO
-- 사용자가 INFORMATION 스키마 뷰 생성
USE master
GO
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_MS_upd_sysobj_category 1
GO
CREATE VIEW INFORMATION_SCHEMA.DEFAULT_CONSTRAINS
AS
SELECT db_name() as CONSTRAINT_CATALOG,
user_name(c_obj.uid) AS CONSTRAINT_SCHEMA,
c_obj.name AS CONSTRAINT_NAME,
com.text as DEFAULT_CLAUSE
FROM sysobjects c_obj, syscomments com
WHERE c_obj.uid = user_id()
AND c_obj.id = com.id
AND c_obj.xtype = 'D'
GO
EXEC sp_MS_upd_sysobj_category 2
GO
EXEC sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO
USE sample
GO
SELECT *
FROM INFORMATION_SCHEMA.DEFAULT_CONSTRAINS
GO
SELECT db_name(), user_name()
GO
SELECT *
FROM sysobjects
WHERE uid = user_id() AND xtype = 'D'
GO
SELECT *
FROM syscomments