프로그래밍/DB 78

[DB] MSSQL 무결성제약조건. 체크조건을 통한 무결성제한

체크조건을 통한 무결성 제한방법에 대하여 알아보도록 하겠습니다. 특정필드값에 범위를 주거나 아니면 정해진 값만넣도록 제한을 걸고 싶은경우가 있습니다. 이때 코드테이블을 생성하여 외래키를 걸어서 하는경우도 있지만 별도 테이블 없이 체크조건제약을 통하여 입력값을 제한하여 원하는 입력값만 받을수 있습니다. 먼저 아래와 같이 USER라는 테이블을 만들고 Area필드에 수도권(경기,인천,서울)에 대한 값만 넣을 수 있도록 제한을 걸어보도록 하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE [dbo].[USER]( [ID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [Name] [nchar](10) NULL, [Area] [..

프로그래밍/DB 2020.11.02

[DB] MSSQL 테이블정보변경시 "변경 내용을 저장할수 없습니다." 에러발생 해결방법

아래그림과 같이 테이블을 변경하고 저장할때 변경되지 않을때 "변경 내용을 저장할수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고 다시 만들어야 합니다. 다시만들 수 없는 테이블을 변경하거나 [테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함] 옵션을 설정했습니다." 라는 경고메세지와 함께 테이블 정보가 변경되지 않는 문제 해결방법에 대해서 알아보겠습니다. SQL Managemnet -> 도구 -> 옵션 항목을 선택합니다. 옵션항목 -> 디자이너탭을 클릭 -> 테이블을 다시 만들어야 하는 변경 내용 저장 안 함 체크를 해제합니다. 해당부분을 해제후 테이블을 변경하면 변경되는 부분을 확인할수있습니다. 추가로 거꾸로 테이블정보를 변경시 해당부분에 대한 스크립트를 알고 싶을때는 "변경 스크립트..

프로그래밍/DB 2020.11.02

[DB] MSSQL 최대메모리 설정하기

SQL서버를 운영하다보면 메모리가 계속 증가하는것 경우가 있습니다. 물리적으로 제공하는 메모리를 SQL서버에서 너무 많이 사용하여 운영중인 서비스에 문제가 발생하는 경우가 있습니다. 이럴때 SQL최대메모리를 제한해두어 서비스에 문제가 되는 부분을 방지 할수 있습니다. 개체탐색기 -> 속성을 클릭합니다. 메모리설정관련 기본값과 최소값은 다음과 같습니다. 기본값 최소값 최소 서버메모리 0 0 최대 서버 메모리 2,147,483,647MB 128MB 최대메모리를 8G로 설정해보겠습니다. 최대서버 메모리 부분에 8098MB로 입력후 확인버튼을 클릭하면 8G로 설정이 됩니다. 스크립트 문으로 변경하는 방법에 대해 알아보겠습니다. sp_configure 프로시저를 사용하여 변경이 가능합니다. max server m..

프로그래밍/DB 2020.10.27

[DB] MSSQL DB트랜잭션 복제방법

데이터베이스 복제방법에 대하여 알아보도록 하겠습니다. 복제방법에는 크게 스냅샷 복제, 병합복제, 트랜잭션복제가 있습니다. MSDN의 복제유형자료를 보면 다음과 같습니다. 이외에도 피어투피어, 양방향 복제도 있습니다. 실시간으로 복제가 이루어지는 트랜잭션 복제하는 방법에 대하여 살펴보도록 하겠습니다. 먼저 DB인스턴스명으로 로그인을 합니다. 복제시 주의사항 1. 기본키가 설정되어있는 테이블이어여합니다. 2. 서버연결시 인스턴스명으로 연결이 되어야합니다. 복제설정방법 1. 배포구성 복제 -> 배포구성을 선택합니다. 복제를 하기위해서는 먼저 배포자를 구성해야합니다. 스냅샷폴더를 지정합니다. 트랙잭션복제시 구독자가 스냅샷을 먼저 실행후 처리하도록 설정하기위해 스냅숏 폴더를 지정합니다. SQL기본폴더인 RelpD..

프로그래밍/DB 2020.10.26

[DB] MSSQL SQL서버제거방법

SQL서버를 삭제하는방법에 대하여 알아보겠습니다. 먼저 서비스 메뉴로 간후 SQL Server시작하는 서비스를 모두 중지해주시기 바랍니다. 제어판 -> 프로그램 및 기능을 선택합니다. 프로그램 제거 및 변경항목에서 SQL Server항목을 선택후 제거 버튼을 클릭합니다. 아래 경로파일을 삭제합니다. 해당폴더를 삭제시 데이터베이스파일까지 모두 삭제가 되니 주의하시기 바랍니다. 기존DB파일이 필요하신분은 백업후 삭제하시기 바랍니다. C:\\Program Files\\Microsoft SQL Server C:\\Program Files (x86)\\Microsoft SQL Server

프로그래밍/DB 2020.10.24

[DB] MSSQL SQL서버설치방법

MSSQL 서버설치방법에 대하여 알아보겠습니다. setup.exe를 실행합니다. 해당파일을 실행하면 SQL설치센터 화면이 나타납니다. 하드웨어 및 소프트웨어 요구사항을 클릭하면 메모리 및 프로세스속도등 최소 사양 및 권장사양에 대해서 알려줍니다. 왼쪽의 설치메뉴를 클릭하면 아래 이미지와 같이 나타나며 새 SQL Server 독립실행형 설치 또는 기존 설치에 기능추가를 선택합니다. 제품키를 입력후 다음버튼을 클릭합니다. 무료버전으로 테스트 하고 싶으신분은 무료버전으로 지정하여 테스트 하시기 바랍니다. 이제 사용조건의 동의함을 클릭한 후 기본으로 설치해보도록 하겠습니다. 모든 기능을 기본값으로 하여 설치하도록 하겠습니다. 인스턴스는 기본인스턴스로 구성하겠고 인스턴스명을 바꾸시고 싶은 분들은 명명된 인스턴스명..

프로그래밍/DB 2020.10.24

[DB] MSSQL CASE문 사용법

MSSQL에서 CASE WHEN문 사용법에대해 설명드리겠습니다. CASE문은 언제 사용할까요? 조건에 대하여 해당하는 결과에 따라 값을 결정할때 많이 사용합니다. 프로그램의 IF문과 비슷하다고 보면될것 같습니다. AdventureWorkLT2017테이블로 테스트 해보도록 하겠습니다. 먼저 MSDN자료에서 CASE구문에 대해 살펴보도록 하겠습니다. case .. when .. then .. else end 이런식으로 처리가됩니다. Address테이블을 검색하면 아래와 같은 결과가 나옵니다. ContryRegion이 영문으로 표기되어있는데 해당값을 국가별 약자명 코드로 변경하는 방법에 대해 알아보겠습니다. 국가코드 : ko.wikipedia.org/wiki/ISO_3166-1 1 2 3 4 5 6 7 SEL..

프로그래밍/DB 2020.10.22

[DB] MSSQL 임시테이블사용법

MSSQL의 임시테이블에 대하여 알아보겠습니다. 이전포스팅한부분(sosopro.tistory.com/57)에 테이블복사하는 SELECT INTO, INSERT INTO .. SELECT에대하여 살펴보았습니다. 이경우 테이블을 새로 생성하거나해서 데이터를 옮겨야합니다. 잠깐 사용할 용도인경우에는 테이블을 생성하지 않고 임시테이블로 사용해서 처리하면됩니다. 저장프로시저내에서 임시테이블을 만든다음 특정 작업을 하는 형태로 사용할경우 편리하게 사용할수 있습니다. 만드는방법 사용할수있는범위 삭제시기 세션임시테이블 #tablename 해당세션에만 세션이 끊어질떄 전역임시테이블 ##tablename 다른세션에서도 세션이 끊어질떄 tempdb create table 다른세션에서도 sql서버 시작시 1. 세션임시테이블...

프로그래밍/DB 2020.10.19

[DB] MSSQL SELECT INTO, INSERT INTO .. SELECT 사용방법 및 차이점

SELECT INTO는 테이블의 검색결과를 새로운 테이블로 만들어서 보내기를 할때사용한다. INSERT INTO는 테이블 검색를 이미 생성되어있는 테이블로 전송할때 사용합니다. 먼저 SELECT INTO를 사용하여 새로운 테이블로 데이터를 전송해보도록 하겠습니다. 1. SELECT INTO 사용방법 새로만들어질 테이블(SalesLT.Address_NEW1)을 FROM절 앞에두고 뒷쪽에 원본테이블을 입력후 쿼리를 실행합니다. 1 2 3 4 5 -- 1.전체테이블복사 SELECT * INTO SalesLT.Address_NEW1 FROM SalesLT.Address -- 2.검색결과복사 SELECT * INTO SalesLT.Address_NEW2 FROM SalesLT.Address WHERE City =..

프로그래밍/DB 2020.10.18

[DB] MSSQL 데드락(교착상태) 해결방법

데이터베이스를 운영하여보면 "트랜잭션(프로세스 ID 57)이 잠금 리소스에서 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다". 트랜잭션을 다시 실행하십시오." 와 같은 에러가 발생하는 경우가 있습니다. 1. 데드락 발생원인 (교착상태에 빠지는이유) 아래 그림과 같이 트랜잭션1이 Table1을 업데이트후 Table2를 업데이트 하려고 할때, 트랜잭션2가 이미 Table2에 업데이트 작업을 진행중인 경우 해당작업을 완료할 때까지 대기후 처리합니다. 트랜잭션2가 Table2업데이트 완료후 Table1을 업데이트 하려고 할때 트랜잭션1이 Table1의 작업을 하고 있어서 완료 될때까지 대기한다. 이렇게 두개의 트랜잭션작업이 서로 완료 될때까지 기다리게되며 결과적으로 아무것도 완료가 되지 않는 상태..

프로그래밍/DB 2020.10.18
1 ··· 3 4 5 6 7 8