본문 바로가기

Programming/MSSQL43

MSSQL에서 탭, 엔터 제거하기(\t \n \r 제거) MSSQL에서 데이터를 뽑아서 엑셀이나 CSV 등에 옮길 때 엔터나 탭으로 인해 파일 형식이 깨지는 경우가 많다.왜냐하면 tab이나 enter가 구분자 역할을 하기 때문이다. 따라서 엑셀에 담기 전에 탭과 엔터를 REPLACE로 제거해주면 된다. 엔터: REPLACE(REPLACE(컬럼명, CHAR(13), ''), CHAR(10), '');탭: REPLACE(컬럼명, CHAR(9), '') \t: char(9)\n: char(10)\r: char(13) \t는 탭이기 때문에 char(9)를 찾아서 REPLACE를 해주면 된다.\n, \r은 엔터이기 때문에 char(10)과 char(13)을 찾아서 REPLACE를 해주면 된다. 2018. 7. 19.
MSSQL 백업파일로 DB 복원하기 MSSQL에서 데이터베이스를 백업하면 .bak 확장자로 보통 백업을 받아놓습니다. 그리고 이 .bak 파일을 활용하여 다른 서버에서 DB(데이터베이스)를 복원할 경우가 생깁니다. 그럴 땐 retore 구문에 .bak 경로를 써주고 기존과 똑같이 .mdf와 .ndf 그리고 .ldf 파일의 위치를 적어주면 됩니다. RESTORE DATABASE TEST_DBFROM DISK = '\BackupData\20180716.bak'WITH RECOVERY, STATS = 10,MOVE 'TEST_DB' TO 'F:\SQLData\TEST_DB.mdf', MOVE 'DATA01' TO 'F:\SQLData\TEST_DB.ndf',MOVE 'DATA02' TO 'F:\SQLData\TEST_DB.ndf',MOVE 'T.. 2018. 7. 17.
클러스터드 인덱스 DROP 후 RECREATE 하기 SQL SERVER(MSSQL)에서 클러스터드 인덱스에 컬럼 하나를 추가하고자 DROP 후에 다시 만들려고 할 때 안되는 경우가 있습니다. 즉 PK 제약조건이 설정되어 있어서 안되는 경우인데 이럴 경우에 DROP을 하려고 하면 다음과 같은 에러가 뜹니다. 즉 "인덱스 TEST_TABLE.PK__TEST_TABLE에서는 명시적 DROP INDEX를 사용할 수 없습니다. 이 인덱스는 PRIMARY KEY 제약 조건 설정에 사용 중입니다. 라는 에러가 뜹니다. 이럴 땐 다음과 같이 DROP 후에 다시 만들어주면 됩니다. GO ALTER TABLE [dbo].[TEST_TABLE] DROP CONSTRAINT [PK__TEST_TABLE] GO ALTER TABLE [dbo].[TEST_TABLE] ADD CO.. 2018. 7. 16.
MSSQL 테이블 권한 조회(확인)하고 GRANT 문 만들기 MSSQL에서 테이블을 DROP 하고 다시 만들거나 테이블을 RENAME해야하는 경우가 있다.예를 들어 운영중인 집계 테이블을 DROP하고 다시 만들어야할 때 신규 집계 테이블을 만들어놓고 기존의 테이블과 교체하는 형식이다.이럴 때 기존 테이블에 걸려 있는 계정별 권한을 확인하고 신규 테이블에도 똑같이 권한을 줘야한다. 다음은 테이블에 권한을 확인하고 그 권한을 주는 GRANT문을 생성하는 쿼리이다. SELECT a.state_desc collate Korean_Wansung_CS_AS + ' ' + a.permission_name collate Korean_Wansung_CS_AS + ' ON OBJECT::' + b.name collate Korean_Wansung_CS_AS + ' TO ' + c... 2018. 6. 9.