728x90
놀랍게도 SQL로 파일을 이동/삭제할 수 있는 방법이 있었다.
xp_cmdshell 을 사용해서 윈도우 command를 활용하는 방법이다.
먼저 아래 쿼리를 실행해서 xp_cmdshell 사용을 설정해야 한다.
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', '1'
RECONFIGURE
그리고 아래와 같이 사용하면 된다.
DECLARE @cmd sysname;
-- 파일 삭제
SET @cmd = 'del "' + @RootDir + '\' + @FileName + '"';
EXECUTE sys.xp_cmdshell @cmd;
-- 파일 이동하기(@RootDir1 => @RootDir2)
SET @cmd = 'MOVE "' + @RootDir1 + '\' + @FileName + '" "' + @RootDir2 + '"';
EXECUTE sys.xp_cmdshell @cmd;
단, ACCESS IS DENIED 에러가 발생할 수 있다.
보안때문에 조작이 이루어질 폴더에 권한 설정을 해주어야 한다.
아래와 같이 조작을 가할 폴더에 SERVICE 사용자를 추가하고 권한을 부여해야 한다.
[참고자료]
728x90
'Programming > Database' 카테고리의 다른 글
[SQL] WHERE 절 조건에 IF/ELSE 조건 넣기 (0) | 2022.11.02 |
---|---|
[MS-SQL] Alter Constraint (0) | 2022.07.10 |
[MS-SQL] JSON Parsing하기 (0) | 2021.11.11 |
[MS-SQL] 대소문자 구별해서 치환하기 (2) | 2021.11.06 |
[MS-SQL] 모든 테이블 조회 (0) | 2021.09.26 |
댓글