분류 전체보기 29

[MSSQL] 데이터베이스 복원(RESTORE DATABASE)

1. 백업 폴더에서 백업 파일 리스트 구하기exec xp_dirtree N'D:\test\',1,1 2. 백업 파일 논리명 확인RESTORE FILELISTONLY FROM DISK ='D:\test\test_230628.bak' GO 3. 해당 백업 파일로 복원(주석 확인)RESTORE DATABASE test_2024 FROM DISK = 'D:\test\test_230628.bak' -- 백업 파일 경로로 설정해준다.WITH MOVE 'test' TO 'D:\test_restore\test.mdf' -- MOVE 다음에는 위에서 확인한 논리명(LogicalName을 적어준다. mdf는 Type이 D인것으로 기입, TO 다음 위치는 복원할 DB의 신규 물리 파일(데이터 파일) 경로를 설정해준다. ..

MSSQL 2024.06.28

[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] 테이블 종속성을 확인하는 방법

sp_depends sp_rename하거나 지우고 재생성할 경우에는 안나올 수도 있음exec sp_depends '테이블명'sys.sql_expression_dependencies DMV 조회SELECT OBJECT_SCHEMA_NAME(referencing_id) AS referencing_schema_name,OBJECT_NAME(referencing_id) AS referencing_entity_name,o.type_desc AS referencing_desciption,COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,referencing_class_desc,referenced_class..

카테고리 없음 2024.06.23

[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

[PowerShell] 폴더 내 특정 확장자 파일명 리스트 저장하기

# 파일이 존재하는 폴더 경로를 사용자에게 입력받는다. [string]$Path = "" $Path = Read-Host "경로를 입력하세요" # 배열에 입력받은 폴더 경로를 \로 분할한다. $Array = $Path.Split("\") # 배열의 맨 마지막 폴더명으로 값을 할당한다. [string]$FileName = $Array[-1] # 해당 폴더 경로의 모든 파일명을 합쳐서 임시 텍스트파일에 저장한다. Get-ChildItem "$Path" -Recurse | %{$_.Name} > D:\test\A__list.txt # 위에서 생성한 텍스트 파일 중 (test).txt 문자열을 빈칸으로 치환한다. ('\' 는 와일드카드임) Get-Content D:\test\A__list.txt | %{$_ -..

PowerShell 2024.02.22