본문 바로가기

프로그래밍/TSQL60

[TSQL] 테이블 존재 여부 확인 --■■ 일반 테이블 존재 유무 확인 IF EXISTS (SELECT * FROM SYSOBJECTS WHERE TYPE = 'U' AND NAME = 'TEST') BEGIN PRINT('DO DROP SOMETHING') END ELSE BEGIN PRINT('DO CREATE SOMETHING') END IF EXISTS (SELECT * FROM information_schema.tables WHERE TABLE_NAME = 'TEST') BEGIN PRINT('DO DROP SOMETHING') END ELSE BEGIN PRINT('DO CREATE SOMETHING') END IF EXISTS (SELECT * FROM SYS.tables WHERE NAME = 'TEST') BEGIN PR.. 2019. 10. 28.
[TSQL] SP 수정 이력을 알고 싶나요? SELECT * FROM sys.sql_modules sm inner join sys.all_objects ao on sm.object_id = ao.object_id order by modify_date desc 위 쿼리로 조회 할 수 있습니다. MSSQL 에 다른 프로그래밍 언어 처럼 형상 관리가 연동되지 않아 불편함이 있습니다. 스케쥴로 위 쿼리의 결과를 떠두고 MODIFY_DATE를 비교해서, 변경이 있는 것에 대해 백업해두고, GIT과 연동하면 형상 관리를 할수있지요. GIT 관련자 분들 있으시면, SSMS에 GIT 연동 할 수 있도록 지원해주면 좋겠네요 2019. 10. 22.
[TSQL] 현재 DB 내 수행 중인 쿼리 정보 확인 SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.total_elapsed_time FROM sys.dm_exec_requests req CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 2019. 10. 22.
[MSSQL][TSQL] CTE(Common Table Expression) 란? (계층쿼리, 재귀) 임시 테이블 처럼 사용하는 cte 성능에도 큰 도약이 됩니다. 단, 분산 cpu 성능을 많이 쓰는 경우도 있으니 분산 처리 환경에서 더 유용해요. CTE(공통 테이블 식)는 SELECT, INSERT, UPDATE, DELETE 또는 CREATE VIEW 문 하나의 실행 범위 내에서 정의되는 임시 결과 집합이라고 볼 수 있습니다. CTE는 개체로 저장되지 않고 쿼리 지속 시간 동안만 존재한다는 점에서 파생 테이블과 비슷합니다. 그러나 CTE는 파생 테이블과 달리 자체 참조가 가능하며 동일 쿼리에서 여러 번 참조될 수 있습니다. CTE를 사용하여 다음을 수행할 수 있습니다. 재귀 쿼리를 만들 수 있습니다. 자세한 내용은 공통 테이블 식을 사용하는 재귀 쿼리를 참조하십시오. (Oracle의 Start Wit.. 2019. 10. 21.