2024/08 4

[MSSQL] 테이블 값 생성자

기존에는 어떤 설정 값을 임시로 담아야하거나 할 때 임시테이블을 사용하거나 임시테이블변수를 사용하거나 서브쿼리로 SELECT ~ UNION ALL 이렇게 많이 사용했는데,FROM 절에도 VALUES 문법을 사용할 수 있다는 것을 알게되었다.여러가지 구문에서 활용가능하며, 사용 방법에 따라 WORKTABLE을 생성하지 않으니 데이터양이 많지 않고 중간 값 저장이 필요없고 정렬이 필요없는 케이스라면 해당 문법을 사용하는 것도 좋아보인다.-- SELECT ~ UNION ALLSELECT *FROM ( SELECT N'rpc' AS [NAME], 1 AS [NUMBER] UNION ALL SELECT N'pub', 2 UNION ALL SELECT N'sub', 4 UNION ALL SE..

MSSQL 2024.08.26

[MSSQL] ERROR CODE 666. UNIQUIFIER 고유 식별자 최대값 초과

중복 그룹에 대한 시스템 생성 고유 값이 파티션 ID가 %I64d인 인덱스에서 최대값을 초과했습니다. 인덱스 삭제 및 다시 만들기로 이 문제를 해결할 수 있습니다. 그렇지 않으면 다른 클러스터링 키를 사용합니다. 고유하지 않은 값을 가진 클러스터형 인덱스로 인해 666 오류가 발생했다.UNIQUIFIER 값은 INT형으로 2,147,483,647 까지만 값을 가질 수 있는데, 해당 값을 초과하면 666 에러코드가 발생한다.자세한 내용은 MVP 강성욱 님 블로그 글을 참고하면 좋다.(https://m.blog.naver.com/sqlmvp/221318954831) 고유한 값을 가지는 데이터가 동일한 테이블에 21억건 이상 존재하는 경우에 INSERT하는 케이스만 에러가 발생하는 것으로 알고있었는데 UPDA..

MSSQL 2024.08.22

[MSSQL] SET TRUSTWORTHY ON 옵션 DB 복원 시 주의점

자동 배포를 백업/복원 방식으로 만들었더니 복원할 때 해당 속성이 함께 이관되지 않아 EXECUTE AS OWNER가 포함된 SP들을 실행하지 못해 오류가 발생했다. TRUSTWORTHY 옵션이 ON으로 설정된 DB에 대해 복원을 진행할 경우 OFF로 처리된다.따라서, 해당 옵션이 ON처리 되어있는 데이터베이스에 대해 복원을 진행할 경우 꼭 ON처리를 해주어야 한다.

MSSQL 2024.08.21

[MSSQL] 스냅샷DB가 있는 경우 데이터베이스 백업 오류 현상

사용자 db만 백업하고 싶을 때 대상 데이터베이스 리스트업 시, 주로 조건을 아래와 같이 설정하는데 스냅샷 db가 있는 경우 스냅샷 db를 백업하려고 해서 오류가 발생한 경우가 있다.select *from master.sys.databaseswhere database_id > 4 -- system db 제외and state_desc = 'ONLINE' -- online 상태인 db 만 - 원본 데이터베이스 : test_snapshot - 데이터베이스 스냅샷 : test_snapshot_202408071045 스냅샷db가 is_read_only값이 1이라서 그런가 하고 찾아보니 읽기 전용 db도 백업/복원은 가능하다msdn을 찾아보자  https://learn.microsoft.com/ko-kr/sql/..

MSSQL 2024.08.07