반응형

원본 : http://www.databasejournal.com/features/mssql/article.php/3587906

편집 : 한대성 (SQLLeader.com)

 

 

 

 테이블의 모든 계산 (Computed Column) 찾기 

 ID열이 있는 테이블 목록 조사하기

 현재 Instance 모든 이스 알아내기

 데이터베이스의 모든 저장 프로시저 리스트 알아내기

 데이터베이스의 모든 테이블 리스트 알아내기

 데이터베이스의 모든 리스트 알아내기

 데이터베이스의 모든 트리거 리스트 알아내기

 서버의 모든 로그인 리스트 알아내기

 데이터베이스의 모든 SQL 개체에 대한 종속성 확인하기

 SQL Server 모든 데이터 유형 확인하기

 SQL Server 모든 에러 메시지 확인하기

 현재 데이터베이스의 데이터 파일 확인하기

 현재 데이터베이스의 모든 인덱스의 유형 확인하기

 

 

 

테이블의 모든 계산 열(Computed Column) 찾기

 

SQL SERVER 2000

select name from syscolumns where id =object_id('TableName') and iscomputed=1

 

SQL SERVER 2005

select name from sys.computed_columns where object_id =object_id('TableName')

 

참고

SQL Server 2005에서는 계산된 열을 지속형(Persisited)으로 설정할 있습니다. 따라서, 지속형(Persisted)으로 설정되지 않은 계산된 열을 확인하기 위해서 다음과 같이 조건을 추가할 있습니다.:

select * from sys.computed_columns where is_persisted=0

 

 

 

ID열이 있는 테이블 목록 조사하기

 

SQL SERVER 2000

select object_name(id),name from syscolumns where columnproperty(id,name,'IsIdentity')=1

 

SQL SERVER 2005

select object_name(object_id),name from sys.identity_columns

 

참고

SQL Server 2005 에서는 id열의 가장 마지막 값을 별도로 저장합니다. 다음과 같은 쿼리를 이용해서 이를 확인할 있습니다..

select name,last_value from sys.identity_columns

 

 

 

현재 Instance의 모든 데이터베이스 알아내기

 

SQL SERVER 2000

select name from master..sysdatabases

 

SQL SERVER 2005

select name from sys.databases

 

 

 

데이터베이스의 모든 저장 프로시저 리스트 알아내기

 

SQL SERVER 2000

select name from sysobjects where type='P'

 

SQL SERVER 2005

select name from sys.procedures

 

참고

다음과 같은 조건으로 저장 프로시저가 복제에서 이용되는지 여부와 SQL Server 시작할 자동으로 시작하는지의 여부를 확인할 있습니다.

select name from sys.procedures where is_execution_replicated=1

select name from sys.procedures where is_auto_executed=0

 

 

 

데이터베이스의 모든 테이블 리스트 알아내기

 

SQL SERVER 2000

select name from sysobjects where type='U'

 

SQL SERVER 2005

select name from sys.tables

 

참고 : 다음과 같은 조건으로 복제되는 테이블의 리스트를 확인할 있습니다.

select * from sys.tables  where is_replicated =1

 

 

 

데이터베이스의 모든 뷰 리스트 알아내기

 

SQL SERVER 2000

select name from sysobjects where type='V'

 

SQL SERVER 2005

select name from sys.views

 

 

 

데이터베이스의 모든 트리거 리스트 알아내기

 

SQL SERVER 2000

select name from sysobjects where type='TR'

 

SQL SERVER 2005

select name from sys.triggers where parent_class=1

 

참고

다음과 같은 조건으로 어셈블리(CLR) 트리거와 SQL 트리거를 구분할 있습니다. (TA : 어셈블리 트리거, TR : SQL 트리거) 또한 After 트리거인지 Instead Of 트리거인지도 구분 가능합니다.

select name from sys.triggers where type='TA'

select name from sys.triggers where type='TR'

select name from sys.triggers where is_instead_of_trigger=1

 

 

 

서버의 모든 로그인 리스트 알아내기

 

SQL SERVER 2000

select * from master..syslogins where isntgroup=0 and isntname=0

 

SQL SERVER 2005

select * from sys.sql_logins

 

 

 

데이터베이스의 모든 SQL 개체에 대한 종속성 확인하기

 

SQL SERVER 2000

select * from sysdepends

 

SQL SERVER 2005

select * from sys.sql_dependencies

 

 

 

SQL Server의 모든 데이터 유형 확인하기

 

SQL SERVER 2000

select * from systypes

 

SQL SERVER 2005

select * from sys.systypes

 

 

 

SQL Server의 모든 에러 메시지 확인하기

 

SQL SERVER 2000

select * from master..sysmessages

 

SQL SERVER 2005

select * from sys.messages

 

 

 

현재 데이터베이스의 데이터 파일 확인하기

 

SQL SERVER 2000

select name,filename from sysfiles

 

SQL SERVER 2005

select name, physical_name from sys.database_files

 

 

 

현재 데이터베이스의 모든 인덱스의 유형 확인하기

 

SQL SERVER 2000

sysindexes 테이블의 indid 열을 이용해서 구분

 

SQL SERVER 2005

select object_name(object_id),name, type_desc  from sys.indexes where type_desc ='CLUSTERED'

select object_name(object_id),name, type_desc  from sys.indexes where type_desc ='HEAP'

select object_name(object_id),name, type_desc  from sys.indexes where type_desc ='NONCLUSTERED'

select object_name(object_id),name, type_desc  from sys.indexes where type_desc ='XML'

 
반응형

+ Recent posts