이준빈은 호박머리

IT 프로그래밍 개발 정보 블로그, 이준빈은 호박머리 입니다.

반응형

Database/MSSQL 12

ID 열의 명시적 값은 열 목록이 사용되고 IDENTITY_INSERT가 ON일 때만 지정할 수 있습니다.

위와 같이 MSSQL에서 INSERT 쿼리 실행 시 "테이블 table에 있는 ID 열의 명시적 값은 열 목록이 사용되고 IDENTITY_INSERT가 ON일 때만 지정할 수 있습니다." 라는 오류가 발생했을 경우 조치방법입니다. 먼저 위의 오류가 발생한 원인은 MSSQL에서 해당 table의 특정 컬럼이 IDENTITY 속성이 적용되어 있을 때 임의로 지정된 값을 insert하려 할 때 "쿼리가 완료되었으나 오류가 발생했습니다." 라는 결과와 함께 위의 에러가 발생합니다. IDENTITY는 MySQL의 auto_increment와 동일하게 생각하면됩니다. Insert 시 IDENTITY로 지정된 컬럼은 max + 1의 값이 자동으로 생성되어 저장됩니다. 자동으로 생성되어 저장되지만 직접 특정값을 ins..

Database/MSSQL 2016.08.03

MSSQL Server 에이전트 서비스 활성화

MSSQL Server 에이전트 서비스를 활성화 하는 방법입니다. 위의 파란색 박스에 원래는 "SQL Server 에이전트" 라는 항목이 있어야하지만 Agent 서비스가 활성화 되어 있지 않아 Microsoft SQL Server Management Studio에 보이지 않을 경우 아래의 과정을 따라하시어 Agent Service를 활성화 하시면 됩니다. 1. 시작 - Microsoft SQL Server 2008 R2 폴더 클릭 - 구성도구 폴더 클릭 - SQL Server 구성 관리자 실행 2. 좌측 SQL Server 서비스 항목을 클릭하면 오른쪽 화면에 SQL Server(SQLEXPRESS), SQL Server 에이전트(SQLEXPRESS), SQL Server Browser 이렇게 3개의 항..

Database/MSSQL 2015.10.28

MSSQL FOREIGN KEY 제약 조건에서 참조하므로 삭제할 수 없습니다.

MSSQL의 테이블 삭제(DROP TABLE) 시 위와 같이 FOREIGN KEY 제약 조건에서 참조하므로 삭제할 수 없습니다. 라는 오류창 및 메시지를 확인할 수 있습니다.(※Foreign Key = 외래키) 이런 오류가 발생하는 원인은 삭제하려는 테이블이 다른 테이블과 KEY가 엮여 있기 때문에 제약조건(constraint)이 설정되어 있는 부분을 먼저 삭제 또는 변경하신 후 테이블 삭제가 진행이 되어야 하기 때문입니다.아래 과정은 이런 상황에서 테이블을 삭제할 수 있는 방법입니다. 1. 먼저 위의 오류 메시지를 확인하기 위해 해당 테이블에서 마우스 오른쪽 클릭 후 삭제 버튼을 클릭합니다. 2. 확인 버튼을 클릭하여 해당 테이블 삭제를 시도합니다.※ 1, 2번 과정없이 DROP TABLE 명령어로 직..

Database/MSSQL 2015.08.18

MSSQL 복원(Restore) 시 데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없습니다

MSSQL DB 복원 시 아래와 같은 오류가 발생했을 경우 조치방법입니다.Exclusive access could not be obtained because the database is in use. 서버 XXX에 대한 복원이(가) 실패했습니다. (Microsoft.SqlServer.SmoExtended)추가정보 :Transact-SQL 문 또는 일괄 처리를 실행하는 동안 예외가 발생했습니다.(Microsoft.SqlServer.ConnectionInfo)데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없습니다. RESTORE DATABASE이(가) 비정상적으로 종료됩니다. (Microsoft SQL Server, 오류: 3101) 이 오류가 발생하는 원인은 DB 복원(Restore) 시 아직 해당..

Database/MSSQL 2015.08.13

[MSSQL]SQL Server 테이블을 저장 하려고 하면 오류 메시지: "변경 내용 저장 허용 되지 않습니다."

변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고 다시 만들어야합니다. 다시 만들 수 없는 테이블을 변경했거나 [테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함] 옵션을 설정했습니다. MSSQL에서 컬럼타입을 변경하거나 테이블의 구조를 변경 후 저장할 때 위와같은 오류 메세지가 나타나면서 컬럼 타입 변경이 되지 않을 경우 대처 방법입니다.아래의 간단한 과정에 따라 진행하시면 오류 메세지 없이 테이블 저장이 가능합니다. 1. 먼저 Microsoft SQL Server Management Studio의 도구 메뉴에 있는 옵션창을 클릭합니다. 2. 디자이너 - 테이블 및 데이터베이스 디자이너 메뉴에 있는 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함을 체크해제..

Database/MSSQL 2014.05.20

MSSQL 2008 설치

MSSQL 2008 설치 방법입니다.아래의 과정은 무료버전으로 설치한 과정입니다.설치 환경 : Windows7 64bit 1. 먼저 MSSQL 설치 전 SQL Server 2008 서비스팩3(sp3) 패치 업데이트가 완료되어 있어야 설치가 가능합니다. 아래의 URL에서 다운로드 버튼을 클릭합니다.(필수) http://www.microsoft.com/ko-kr/download/details.aspx?id=27594 2. 아래의 URL로 이동하고 MSSQL 무료버전을 다운로드 후 실행합니다. http://www.microsoft.com/ko-kr/download/details.aspx?id=22973 3. 왼쪽 메뉴 중 "설치"를 클릭하고 첫번째 항목인 "새 SQL Server 독립 실행형 설치 또는 기존 ..

Database/MSSQL 2013.09.24

MSSQL IF EXISTS (SELECT UPDATE, SELECT INSERT)

MSSQL 프로시져의 쿼리문 중 IF문을 사용한 예제입니다. SELECT문을 사용한 쿼리를 실행 후 결과값이 존재하면 A동작, 결과값이 존재하지 않으면 B동작 수행을 하는 구문입니다. 여기서 중요한 부분은 EXISTS입니다. IF EXISTS( SELECT SEQ FROM TABLE_A WHERE SEQ = @P_SEQ ) BEGIN //SELECT문의 결과값이 존재할 경우 실행 UPDATE TABLE_A SET USERNAME = @P_NAME WHERE SEQ = @P_SEQ END ELSE BEGIN //SELECT문의 결과값이 없을 경우 실행 INSERT INTO TABLE_A(SEQ, USERNAME) VALUES(@P_SEQ, @P_NAME) END

Database/MSSQL 2013.02.07

[MSSQL] 조인,JOIN (INNER JOIN, OUTER JOIN)

MSSQL*. 조인(JOIN)은 여러 테이블의 상호 연관관계를 연결하여 결과값을 가져올 때 사용합니다. 1. INNER JOIN *. INNER JOIN은 조인하는 테이블의 ON 절의 조건이 일치하는 결과만 출력됩니다. EX) SELECT * FROM A_TABLE AS A INNER JOIN B_TABLE AS B ON A_TABLE.COL1 = B_TABLE.COL1;--A_TABLE.COL1과 B_TABLE.COL1이 일치하는 데이터만 출력됩니다. 2. OUTER JOIN *. OUTER JOIN은 조인하는 테이블의 ON 절의 조건 중 한쪽의 데이터를 모두 가져옵니다. OUTER JOIN은 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN 이렇게 3가지가 있..

Database/MSSQL 2013.01.22

MS-SQL에서 테이블 생성

MS-SQL에서 테이블 만들기 예)CREATE TABLE [테이블 이름] ([컬럼명] [타입]) 가장 기본적인 형태입니다. 문제) 'TEST'라는 이름의 테이블을 만들어보세요.추가할 column은 번호(primary key), 이름(name), 나이(age)모두 null을 허용하지 않습니다. 답)CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY CLUSTERED,name NVARCHAR(10) NOT NULL,age INT NOT NULL) 설명)NOT NULL - 데이터베이스에서 테이블을 만들 때, column에 값을 넣을 때 값을 입력하지 않는 것을 허용하지 않는 것을 말합니다.주의 - 0, 빈 문자열, 공백도 값에 해당합니다. PRIMARY KEY - 해석된 말로는..

Database/MSSQL 2012.12.03

MSSQL IDENTITY 값 초기화

MSSQL IDENTITY 값 초기화하기 자동으로 증가되는 IDENTITY(시퀀스)의 값을 변경하기 위한 쿼리입니다.테이블에 있는 데이터를 삭제해도 IDENTITY의 값은 변경되지 않습니다. 그러므로 아래의 명령어를 사용하여 명시적으로 변경해줘야합니다. 아래의 쿼리를 실행하면 현재 IDENTITY의 값을 확인할 수 있습니다.(변경되지 않음)DBCC CHECKIDENT(테이블명, NORESEED) 아래의 쿼리를 실행하면 IDENTITY의 값이 1로 초기화됩니다.현재 존재하는 데이터의 MAX(SEQ)를 마지막 파라미터에 넣어주면 자동으로 그 다음 번호가 일련번호로 생성됨DBCC CHECKIDENT(테이블명, RESEED, 0) 아래의 쿼리를 실행하면 IDENTITY의 값이 현재 컬럼보다 작을 경우 값을 현재..

Database/MSSQL 2012.08.14
반응형