본문 바로가기

MSsql47

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.
ROW 펼치기 팁 - 쿼리로 행(세로)을 열(가로)로 펼치는 방법 쿼리를 짜다보면 쿼리 결과를 가로로 만들기 위해서 피벗을 사용해야 할 경우가 있다.물론 단순한 SELECT, UPDATE, DELETE, INSERT만 하는 경우에는 이런 쿼리를 짤 필요가 없겠지만 흔히 분석계 쪽에서의 활용을 위해 피벗을 해야한다면 상당히 골치아프다. 물론 DB가 피벗을 지원한다면 배워서 사용하면 된다. 하지만 피벗 결과를 N번 다시 피벗하게 되는 경우가 있는데 그때는 머리가 아프다.참고로 SQL SERVER는 PIVOT 함수를 지원한다. 하지만 지원하지 않는 DB가 꽤 있다. 그럴 때를 대비해서 쉽게 쿼리 세로 결과를 가로로 만드는 방법이다.즉 행을 열로 펼치는 방법을 설명하고자 한다. (로우를 컬럼으로 만드는 방법이다) 예를 들어서 학생에게 신발 5개씩을 추천하기 위한 테이블을 생성.. 2018. 5. 25.