MSSQL 22

[MSSQL] 전체 테이블 대상으로 쿼리 실행(sp_MSforeachtable)

현재 데이터베이스에서 모든 테이블 대상으로 쿼리를 실행하고 싶으면 sp_MSforeachtable 을 사용하면 된다. 사용예시 1. 모든 테이블에 있는 인덱스를 리빌드 해야할 때exec sp_MSforeachtable 'SET QUOTED_IDENTIFIER ON; ALTER INDEX ALL ON ? REBUILD' 2. 모든 테이블의 공통 컬럼을 업데이트 해야할 때exec sp_MSforeachtable 'update ? set datetime = ''2024-06-28 14:00:00'''

MSSQL 2024.06.28

[MSSQL] 전체 DB에서 쿼리 실행(sp_MSforeachdb)

sp_MSforeachdb 를 사용하면 된다. 사용예시 1. 모든 db에서 test라는 이름을 포함한 테이블을 찾아야하는 경우 아래와 같이 실행하면 된다. exec sp_MSforeachdb 'use [?]; select ''?'', * from sys.tables where name like N''%test%''' ?에는 순차적으로 db명이 들어간다.select 절에 '?' 를 추출하는 이유는 어떤 db인지 알기 위해 추가했다. 2. 사용자 데이터베이스(온라인 상태만) 전체 백업하기exec sp_msforeachdb 'IF EXISTS(SELECT 1 FROM SYS.DATABASES WHERE NAME = ''?'' AND DATABASE_ID > 4 AND STATE = 0)BACKUP DATABA..

MSSQL 2024.06.28

[MSSQL] CMD명령어를 통해 파일존재여부 값을 받아서 처리하는 방법

CMD명령어를 통해 파일존재여부 값을 받아서 처리해야할 경우(DIR 명령어X)ex. 백업파일이 존재하는지 체크하기 등등.. 0. D:\test.txt 파일이 있는 상태1. CONFIGURE 설정-- 고급 옵션이 꺼져있으면 켜주고EXEC SP_CONFIGURE 'show advanced options', 1;-- 설정값 동기화RECONFIGURE;-- 설정값을 켜주고EXEC SP_CONFIGURE 'XP_CMDSHELL', 1;-- 설정값 동기화RECONFIGURE; 2. 쿼리 작성 및 실행DECLARE @CHECK_CMD_1 VARCHAR(4000) = '' -- 1번 CMD 명령어 설정, @CHECK_CMD_2 VARCHAR(4000) = '' -- 2번 CMD 명령어 설정, @RC INT ..

MSSQL 2024.06.21

[MSSQL] 유지 관리 계획 IP 설정 값 변경

유지관리계획 ip변경  관리 > 유지 관리 계획 으로 백업을 설정해둔 상태에서 장비의 IP가 변경되었을 경우 신규로 생성해야하므로여러개 설정되어있는 경우, 유지보수가 어려워 스크립트로 변경할 수 있는 방법을 찾음SELECT idFROM msdb.dbo.sysssispackagesWHERE (CAST(CAST(packagedata AS varbinary(MAX)) AS varchar(MAX)) LIKE '%Data Source=' + 'XXX.XXX.XXX.001' + '%') -- 변경 전 IP로 검색UPDATE msdb.dbo.sysssispackages SET packagedata = CAST(REPLACE(CAST(CAST(packagedata AS VA..

MSSQL 2024.06.21

[MSSQL] 특정 문자열 파싱

예시에서는 콤마(,)로 파싱함 찾고자하는 문자로 변경하여 사용가능 1. 특정 문자열로 파싱하여 N번째 위치한 데이터 구하기 SELECT VAL FROM ( SELECTVALUE AS VAL ,ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS RN FROMSTRING_SPLIT('AAAA,BBBBB,CCCCC,DDDD', ',')-- 콜마(,)로 파싱 // 원하는 문자로 변경가능 ) AS A WHERE RN = 1 -- 원하는 위치 값 2. 특정 문자열로 파싱한 N번째 데이터를 원하는 문자열로 변경하기 예시에서는 1번째 데이터를 FFFFF로 변경하는 코드 SELECTSTUFF( (SELECT ',' + CONVERT(NVARCHAR(100), REPLACE_VAL) FROM ( -..

MSSQL 2024.02.22

[MSSQL] WITH CTE(공통 테이블 식), 재귀 쿼리, 트리구조

MS 문서 : https://learn.microsoft.com/ko-kr/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-ver16 WITH common_table_expression(Transact-SQL) - SQL Server 쿼리에서 CTE(공용 테이블 식)를 사용하는 방법의 Transact-SQL 참조입니다. learn.microsoft.com 마트 혹은 부서의 최상위 카테고리별 하위 카테고리의 개수를 구하는 쿼리 use tempdb -- mart 테이블이 있으면 drop한다. drop table if exists mart -- mart 테이블을 생성한다. create table mart ( category..

MSSQL 2024.02.21