SSMS 오류 및 이상증상에 대한 해결 방법 [증상] SQL Server Management Studio(SSMS) '등록된 서버' 내보내기 후 가져오기 실행 시 Error 발생 후 'SSMS – 등록된 서버'에서 '데이터베이스 엔진' 항목이 나타나지 않음. [정상] [환경] SQL Server 2008 SQL Server Management Studio [Action Item] 주의) 아래 방법을 사용하면 기존에 ssms에 설정했던 사용자 환경이 초기화됩니다.(옵션 변경내용 등등..) 1. SSMS를 종료합니다. 2. %appdata%\Microsoft\Microsoft SQL Server\100\Tools\ 경로 내의 Shell 폴더의 이름을 변경합니다. 예) 폴더 이름 변경 [Shell] -> [S..
SQL Server 제거 후 다시 설치할 때 발생할 수 있는 LandingPage오류에 대한 해결 방법 설치 환경 OS : Windows Server 2008 32bit, Windows7 (NT 6.1) SQL Version : SQL Server 2008 R2 RTM 증상 오류메시지) 응용 프로그램에서 처리되지 않은 예외가 발생했습니다. [계속]을 클릭하면 응용 프로그램에서 이 오류를 무시하고 계속합니다. [끝내기]를 클릭하면 응용 프로그램이 즉시 닫힙니다. userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings에 대한 구성 섹션 처리기를 만드는 동안 오류가 발생했습니다.:파일이나 어셈블리 'System, Versio..
트랜잭션 로그 파일이 가득 찼을 경우, 내용 확인과 조치 방법 SQL Server는 ACID 속성 유지를 위해 '미리 쓰기 로그(Write-Ahead Log)'를 사용하고 트랜잭션 로그에 먼저 기록을 해야 트랜잭션이 시작되는 구조라서 트랜잭션 로그가 가득 차면 쿼리가 실행되지 않는다. http://technet.microsoft.com/ko-kr/library/ms186259(v=sql.105).aspx 트랜잭션 로그 파일이 더 이상 커지지 못하는 상황에서 로그파일이 가득 차면 어떤 오류가 발생하는지 확인하였다. 오류: 9002, 심각도: 17, 상태: 4. The transaction log for database 'Northwind' is full. To find out why space in the..
전체 복구모델 데이터베이스에서 트랜잭션 로그의 Truncate 동작을 확인합니다. **개인적인 결론 - 복구모델이 '전체'로 설정된 데이터베이스라도 첫 번째 전체백업을 받기 전까지는 단순모드와 비슷하게 트랜잭션 로그 파일을 자동으로 Truncate 하는 동작을 한다. 이때의 트랜잭션 로그는 '데이터무결성'을 위해서만 사용되며, 첫 번째 전체백업 전의 트랜잭션 로그는 복구 용도로는 무의미하다. --TestDB 데이터베이스 생성 - 테스트를 위해 트랜잭션 로그파일의 자동 증가 값을 0으로 지정하고 MAXSIZE를 100MB로 제한 use master GO IF DB_ID('TestDB') IS NOT NULL DROP DATABASE TestDB GO CREATE DATABASE TestDB ON PRIMA..
어느 한 세션에서 데이터베이스를 Single User Mode로 잡고 있으면 다른 세션에서는 해당 데이터베이스에 접근할 수 없으며, Alter Database 문 또한 실행할 수 없다. 이 상황에서는 Single User Mode Database에 연결된 세션을 찾아 해당 세션의 연결을 끊는 것이 해결 방법 중 하나가 될 수 있다. --Alter Database 실행 - Multi User Mode 전환 ALTER DATABASE TestDB SET MULTI_USER WITH ROLLBACK IMMEDIATE GO 오류 메시지) Msg 5064, Level 16, State 1, Line 5 지금은 데이터베이스 'TestDB'의 상태나 옵션을 바꿀 수 없습니다. 데이터베이스가 단일 사용자 모드이며 현재..
개별 행 삭제를 로깅하지 않고 모든 행을 테이블에서 제거한다. WHERE 절이 없는 DELETE 문과 동일하지만, 더 빠르고 시스템 및 트랜잭션 로그 리소스를 덜 사용한다. 모든 행을 제거하지만 테이블 구조와 테이블의 열, 제약 조건, 인덱스 등은 그대로 존재. Identity 열이 포함되어 있으면 카운터가 초기값으로 다시 설정된다.(초기값이 정의되어 있지 않으면 기본값 1 적용) TRUNCATE TABLE [ { database_name .[ schema_name ] . | schema_name . } ] table_name [ ; ]http://technet.microsoft.com/ko-kr/library/ms177570.aspx 제한 사항 - Foreign Key 제약 조건에 의해 참조. 자신을 ..
SELECT 결과를 테이블에 삽입하는 방법에 대해 정리하였습니다. 1. SELECT INTO SELECT INTO 문을 통해 새로운 테이블을 생성하면서 SELECT 결과를 생성된 테이블에 삽입할 수 있으며, 여러 테이블의 데이터를 조인하여 새로운 하나의 테이블로 결합할 수도 있다. 테이블을 복제하는 개념은 아니므로 인덱스나 통계 정보는 함께 가져오지 않고 데이터만 가져온다. 단, 테이블 디자인을 그대로 가져오기 때문에 데이터 타입 및 Identity 설정은 유지한다. 예문) http://technet.microsoft.com/ko-kr/library/ms190750(v=sql.105).aspx 테스트) -- 테이블 Test01을 새로 생성하면서 Employees 테이블의 모든 결과를 INSERT SELE..
서비스 시작 계정을 "NT AUTHORITY\NetworkService"에서 "SQLservice"라는 계정으로 변경하고자 한다. SQL Server의 경우 서비스 시작 계정을 통해 데이터와 관련된 중요 디렉터리에 접근하는 권한을 부여하는 부분이 있기 때문에, 계정을 변경했을 때 서비스가 시작되지 않는 이슈가 발생할 수 있다. 서비스 계정을 변경하기 전에 어떤 방법으로 데이터 관련 디렉터리 접근 권한을 부여하는지 체크해 놓을 필요가 있다. SQL Server 2005 서비스 시작 계정 변경 전 서버의 로컬 그룹 "SQLServer2005MSSQLUser$REG$MSSQLSERVER"의 구성원을 확인한다. 확인 결과, 현재 이 서버에 설치된 기본 인스턴스(MSSQLSERVER)의 서비스계정인 "NT AUT..