'연구개발 > SQL2005' 카테고리의 다른 글
DML 트리거의 사용 (0) | 2009.06.15 |
---|---|
커서 정보 확인 (0) | 2009.06.12 |
시스템 저장 프로시저(Transact-SQL) (0) | 2009.06.11 |
저장된 프로시저의 이름 및 내용 확인 (0) | 2009.06.11 |
잠금정보 확인 (0) | 2009.06.10 |
DML 트리거의 사용 (0) | 2009.06.15 |
---|---|
커서 정보 확인 (0) | 2009.06.12 |
시스템 저장 프로시저(Transact-SQL) (0) | 2009.06.11 |
저장된 프로시저의 이름 및 내용 확인 (0) | 2009.06.11 |
잠금정보 확인 (0) | 2009.06.10 |
SQL Server에서는 시스템 저장 프로시저를 통해 다양한 관리 및 정보 작업 수행할 수 있습니다. 시스템 저장 프로시저는 다음 표에 표시된 범주별로 그룹화됩니다.
범주 | 설명 |
---|---|
SQL Server 인스턴스 및 SQL Server 데이터베이스를 Microsoft Windows 2000 Active Directory에 등록합니다. | |
ODBC 데이터 사전 기능을 구현하고 ODBC 응용 프로그램을 원본 시스템 테이블 변경으로부터 격리합니다. | |
변경 데이터 캡처 개체를 사용하도록 설정 또는 해제하거나 해당 개체에 대해 보고합니다. | |
커서 변수 기능을 구현합니다. | |
SQL Server 데이터베이스 엔진의 일반적인 유지 관리에 사용됩니다. | |
SQL Server 인스턴스 내의 전자 메일 작업을 수행합니다. | |
데이터베이스 성능을 관리하는 데 필요한 주요 유지 관리 태스크를 설정합니다. | |
분산 쿼리를 구현하고 관리합니다. | |
전체 텍스트 인덱스를 구현하고 쿼리합니다. | |
로그 전달 구성을 구성, 수정 및 모니터링합니다. | |
표준 Transact-SQL 일괄 처리에서 표준 자동화 개체를 사용할 수 있도록 합니다. | |
복제를 관리합니다. | |
보안을 관리합니다. | |
SQL Server 프로파일러에서 성능 및 작업을 모니터링하는 데 사용합니다. | |
SQL Server 에이전트가 예약된 이벤트 기반 작업을 관리하는 데 사용합니다. | |
XML 텍스트 관리에 사용합니다. | |
다양한 유지 관리 작업을 위해 SQL Server 인스턴스에서 외부 프로그램으로의 인터페이스를 제공합니다. |
참고: |
---|
특별히 지정되지 않는 한 모든 시스템 저장 프로시저는 성공을 의미하는 값 0을 반환합니다. 실패에 대해서는 0이 아닌 값이 반환됩니다. |
ADO, OLE DB 및 ODBC 응용 프로그램에 대해 SQL Server 프로파일러를 실행하는 사용자는 이러한 응용 프로그램이 Transact-SQL 참조에서 다루지 않는 시스템 저장 프로시저를 사용한다는 사실을 알 수 있습니다. 이러한 저장 프로시저는 Microsoft SQL Server 네이티브 클라이언트 OLE DB 공급자 및 SQL Server 네이티브 클라이언트 ODBC 드라이버에서 데이터베이스 API 기능을 구현하는 데 사용합니다. 이러한 저장 프로시저는 사용자 요청을 SQL Server에 전달하기 위해 공급자 또는 드라이버가 사용하는 메커니즘으로 공급자 또는 드라이버에서 내부적으로만 사용하도록 되어 있습니다. SQL Server 기반 응용 프로그램에서 이들을 명시적으로 호출할 수는 없습니다.
SQL Server 기반 응용 프로그램은 이러한 저장 프로시저가 지원하는 API 기능을 통해 그 기능을 완전하게 이용할 수 있습니다. 예를 들어 sp_cursor 시스템 저장 프로시저의 커서 기능은 OLE DB API 커서 속성 및 메서드를 통해 OLE DB 응용 프로그램에 사용할 수 있으며 ODBC 커서 특성 및 함수를 통해서는 ODBC 응용 프로그램에 사용할 수 있습니다.
다음 저장 프로시저는 ADO, OLE DB 및 ODBC의 커서 기능을 지원합니다.
sp_cursor |
sp_cursorclose |
sp_cursorexecute |
sp_cursorfetch |
sp_cursoropen |
sp_cursoroption |
sp_cursorprepare |
sp_cursorunprepare |
|
다음 시스템 저장 프로시저는 ADO, OLE DB, ODBC에서 Transact-SQL 문을 실행하는 준비/실행 모델을 지원합니다.
sp_execute |
sp_prepare |
sp_unprepare |
sp_createorphan 및 sp_droporphans 저장 프로시저는 ODBC ntext, text 및 image 처리에 사용됩니다.
sp_reset_connection 저장 프로시저는 SQL Server에서 트랜잭션의 원격 저장 프로시저 호출을 지원하는 데 사용됩니다. 이 저장 프로시저는 연결 풀에서 연결이 다시 사용될 때 Audit Login 및 Audit Logout 이벤트도 실행합니다.
다음 표에 있는 시스템 저장 프로시저는 SQL Server 인스턴스 내부 또는 클라이언트 API를 통해서만 사용되며 일반적인 용도로는 사용되지 않습니다. 이 표의 내용은 변경될 수 있으며 호환성을 보장하지 않습니다.
다음 저장 프로시저는 SQL Server 온라인 설명서에 문서화되어 있습니다.
sp_catalogs |
sp_column_privileges |
sp_column_privileges_ex |
sp_columns |
sp_columns_ex |
sp_databases |
sp_datatype_info |
sp_fkeys |
sp_foreignkeys |
sp_indexes |
sp_pkeys |
sp_primarykeys |
sp_server_info |
sp_special_columns |
sp_sproc_columns |
sp_statistics |
sp_table_privileges |
sp_table_privileges_ex |
sp_tables |
sp_tables_ex |
다음 저장 프로시저는 문서화되어 있지 않습니다.
sp_assemblies_rowset |
sp_assemblies_rowset_rmt |
sp_assemblies_rowset2 |
sp_assembly_dependencies_rowset |
sp_assembly_dependencies_rowset_rmt |
sp_assembly_dependencies_rowset2 |
sp_bcp_dbcmptlevel |
sp_catalogs_rowset |
sp_catalogs_rowset;2 |
sp_catalogs_rowset;5 |
sp_catalogs_rowset_rmt |
sp_catalogs_rowset2 |
sp_check_constbytable_rowset |
sp_check_constbytable_rowset;2 |
sp_check_constbytable_rowset2 |
sp_check_constraints_rowset |
sp_check_constraints_rowset;2 |
sp_check_constraints_rowset2 |
sp_column_privileges_rowset |
sp_column_privileges_rowset;2 |
sp_column_privileges_rowset;5 |
sp_column_privileges_rowset_rmt |
sp_column_privileges_rowset2 |
sp_columns_90 |
sp_columns_90_rowset |
sp_columns_90_rowset_rmt |
sp_columns_90_rowset2 |
sp_columns_ex_90 |
sp_columns_rowset |
sp_columns_rowset;2 |
sp_columns_rowset;5 |
sp_columns_rowset_rmt |
sp_columns_rowset2 |
sp_constr_col_usage_rowset |
sp_datatype_info_90 |
sp_ddopen;1 |
sp_ddopen;10 |
sp_ddopen;11 |
sp_ddopen;12 |
sp_ddopen;13 |
sp_ddopen;2 |
sp_ddopen;3 |
sp_ddopen;4 |
sp_ddopen;5 |
sp_ddopen;6 |
sp_ddopen;7 |
sp_ddopen;8 |
sp_ddopen;9 |
sp_foreign_keys_rowset |
sp_foreign_keys_rowset;2 |
sp_foreign_keys_rowset;3 |
sp_foreign_keys_rowset;5 |
sp_foreign_keys_rowset_rmt |
sp_foreign_keys_rowset2 |
sp_foreign_keys_rowset3 |
sp_indexes_90_rowset |
sp_indexes_90_rowset_rmt |
sp_indexes_90_rowset2 |
sp_indexes_rowset |
sp_indexes_rowset;2 |
sp_indexes_rowset;5 |
sp_indexes_rowset_rmt |
sp_indexes_rowset2 |
sp_linkedservers_rowset |
sp_linkedservers_rowset;2 |
sp_linkedservers_rowset2 |
sp_oledb_database |
sp_oledb_defdb |
sp_oledb_deflang |
sp_oledb_language |
sp_oledb_ro_usrname |
sp_primary_keys_rowset |
sp_primary_keys_rowset;2 |
sp_primary_keys_rowset;3 |
sp_primary_keys_rowset;5 |
sp_primary_keys_rowset_rmt |
sp_primary_keys_rowset2 |
sp_procedure_params_90_rowset |
sp_procedure_params_90_rowset2 |
sp_procedure_params_rowset |
sp_procedure_params_rowset;2 |
sp_procedure_params_rowset2 |
sp_procedures_rowset |
sp_procedures_rowset;2 |
sp_procedures_rowset2 |
sp_provider_types_90_rowset |
sp_provider_types_rowset |
sp_schemata_rowset |
sp_schemata_rowset;3 |
sp_special_columns_90 |
sp_sproc_columns_90 |
sp_statistics_rowset |
sp_statistics_rowset;2 |
sp_statistics_rowset2 |
sp_stored_procedures |
sp_table_constraints_rowset |
sp_table_constraints_rowset;2 |
sp_table_constraints_rowset2 |
sp_table_privileges_rowset |
sp_table_privileges_rowset;2 |
sp_table_privileges_rowset;5 |
sp_table_privileges_rowset_rmt |
sp_table_privileges_rowset2 |
sp_table_statistics_rowset |
sp_table_statistics_rowset;2 |
sp_table_statistics2_rowset |
sp_tablecollations |
sp_tablecollations_90 |
sp_tables_info_90_rowset |
sp_tables_info_90_rowset_64 |
sp_tables_info_90_rowset2 |
sp_tables_info_90_rowset2_64 |
sp_tables_info_rowset |
sp_tables_info_rowset;2 |
sp_tables_info_rowset_64 |
sp_tables_info_rowset_64;2 |
sp_tables_info_rowset2 |
sp_tables_info_rowset2_64 |
sp_tables_rowset;2 |
sp_tables_rowset;5 |
sp_tables_rowset_rmt |
sp_tables_rowset2 |
sp_usertypes_rowset |
sp_usertypes_rowset_rmt |
sp_usertypes_rowset2 |
sp_views_rowset |
sp_views_rowset2 |
sp_xml_schema_rowset |
sp_xml_schema_rowset2 |
|
커서 정보 확인 (0) | 2009.06.12 |
---|---|
테이블 필드명 변경 (0) | 2009.06.12 |
저장된 프로시저의 이름 및 내용 확인 (0) | 2009.06.11 |
잠금정보 확인 (0) | 2009.06.10 |
index 체크 유무 (0) | 2009.06.08 |
테이블 필드명 변경 (0) | 2009.06.12 |
---|---|
시스템 저장 프로시저(Transact-SQL) (0) | 2009.06.11 |
잠금정보 확인 (0) | 2009.06.10 |
index 체크 유무 (0) | 2009.06.08 |
조직도 나타내기 - 재귀적호출 (0) | 2009.05.26 |
시스템 저장 프로시저(Transact-SQL) (0) | 2009.06.11 |
---|---|
저장된 프로시저의 이름 및 내용 확인 (0) | 2009.06.11 |
index 체크 유무 (0) | 2009.06.08 |
조직도 나타내기 - 재귀적호출 (0) | 2009.05.26 |
여러 로우의 값을 하나의 컬럼으로 바꾸는 방법 (0) | 2009.05.20 |
저장된 프로시저의 이름 및 내용 확인 (0) | 2009.06.11 |
---|---|
잠금정보 확인 (0) | 2009.06.10 |
조직도 나타내기 - 재귀적호출 (0) | 2009.05.26 |
여러 로우의 값을 하나의 컬럼으로 바꾸는 방법 (0) | 2009.05.20 |
프로시저에서 중첩된 프로시저 실행 후 트랜잭션 처리될 때 (0) | 2009.05.19 |
재귀적이란 자기 자신을 호출하는 것을 말한다.
USE sqlDB
GO
CREATE TABLE empTbl (emp NCHAR(3), manager NCHAR(3), department NCHAR(3))
GO
INSERT INTO empTbl VALUES ('나사장', NULL, NULL)
INSERT INTO empTbl VALUES ('김재무', '나사장', '재무부')
INSERT INTO empTbl VALUES ('김부장', '김재무', '재무부')
INSERT INTO empTbl VALUES ('이부장', '김재무', '재무부')
INSERT INTO empTbl VALUES ('우대리', '이부장', '재무부')
INSERT INTO empTbl VALUES ('지사원', '이부장', '재무부')
INSERT INTO empTbl VALUES ('이영업', '나사장', '영업부')
INSERT INTO empTbl VALUES ('한과장', '이영업', '영업부')
INSERT INTO empTbl VALUES ('최정보', '나사장', '정보부')
INSERT INTO empTbl VALUES ('윤차장', '최정보', '정보부')
INSERT INTO empTbl VALUES ('이주임', '윤차장', '정보부')
SELECT * FROM empTbl;
WITH empCTE (empName, mgrName, dept, level)
AS
(
SELECT emp, manager, department, 0
FROM empTbl
WHERE manager IS NULL --상관이 없는 사람이 바로 사장
UNION ALL
SELECT AA.emp, AA.manager, AA.department, BB.level+1
FROM empTbl AS AA INNER JOIN empCTE AS BB
ON AA.manager = BB.empName
)
SELECT * FROM empCTE ORDER BY dept, level;
--수정
WITH empCTE (empName, mgrName, dept, level)
AS
(
SELECT emp, manager, department, 0
FROM empTbl
WHERE manager IS NULL --사장
UNION ALL
SELECT AA.emp, AA.manager, AA.department, BB.level + 1
FROM empTbl AS AA INNER JOIN empCTE AS BB
ON AA.manager = BB.empName
)
SELECT replicate(' ', level) + '*' + empName AS [직원이름], dept AS [직원부서]
FROM empCTE ORDER BY dept, level
잠금정보 확인 (0) | 2009.06.10 |
---|---|
index 체크 유무 (0) | 2009.06.08 |
여러 로우의 값을 하나의 컬럼으로 바꾸는 방법 (0) | 2009.05.20 |
프로시저에서 중첩된 프로시저 실행 후 트랜잭션 처리될 때 (0) | 2009.05.19 |
LDF 파일 용량 축소 (0) | 2009.05.17 |
index 체크 유무 (0) | 2009.06.08 |
---|---|
조직도 나타내기 - 재귀적호출 (0) | 2009.05.26 |
프로시저에서 중첩된 프로시저 실행 후 트랜잭션 처리될 때 (0) | 2009.05.19 |
LDF 파일 용량 축소 (0) | 2009.05.17 |
MS-SQL 페이징 쿼리 종류별 성능 비교 (0) | 2009.04.24 |
index 체크 유무 (0) | 2009.06.08 |
---|---|
조직도 나타내기 - 재귀적호출 (0) | 2009.05.26 |
여러 로우의 값을 하나의 컬럼으로 바꾸는 방법 (0) | 2009.05.20 |
LDF 파일 용량 축소 (0) | 2009.05.17 |
MS-SQL 페이징 쿼리 종류별 성능 비교 (0) | 2009.04.24 |
index 체크 유무 (0) | 2009.06.08 |
---|---|
조직도 나타내기 - 재귀적호출 (0) | 2009.05.26 |
여러 로우의 값을 하나의 컬럼으로 바꾸는 방법 (0) | 2009.05.20 |
프로시저에서 중첩된 프로시저 실행 후 트랜잭션 처리될 때 (0) | 2009.05.19 |
MS-SQL 페이징 쿼리 종류별 성능 비교 (0) | 2009.04.24 |