원본 : http://www.databasejournal.com/features/mssql/article.php/3587906
편집 : 한대성 (SQLLeader.com)
테이블의 모든 계산 열(Computed Column) 찾기
데이터베이스의 모든 SQL 개체에 대한 종속성 확인하기
테이블의 모든 계산 열(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'
'연구개발 > DBA' 카테고리의 다른 글
로그 전달 환경에서 데이터 파일 추가 시 처리 문제 (0) | 2009.07.28 |
---|---|
파일 그룹 테스트 - > 파일 그룹 백업 / 복원 (0) | 2009.07.28 |
SQL 2005 성능 문제 해결 한글 문서 (0) | 2009.07.28 |
Troubleshooting Performance Problems in SQL 2005 (0) | 2009.07.28 |
DMV - Missing Index 확인 스크립트 (0) | 2009.07.28 |