이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
================================================================================================== 



안녕하세요. 이스트럭(강동운)입니다.

 

오늘의 주제는 DML 중에서 INSERT 항목.. 그 중 identity에 대해서 알아보도록 하겠습니다.

 

이와 관련해서 임시 테이블을 생성해보도록 하겠습니다.

 

회원(회원번호, 회원아이디, 회원이름, 회원나이, 회원지역)

저번과 다른 부분은 MemberIDX에 IDENTITY(시작값, 증가값) 라는 속성을 부여했습니다.

 

테이블에 IDENTITY 속성이 있는 컬럼을 두개이상 만드는 경우에는 아래와 같은 에러가 발생합니다.

1.png  

 

따라서 테이블에 IDENTITY 속성은 반드시 하나만 존재할 수 있습니다.

 

아래와 같이 테이블을 만들어봅시다.

IF OBJECT_ID('MemberSelectIdentity') IS NOT NULL
 DROP TABLE MemberSelectIdentity
GO
CREATE TABLE MemberSelectIdentity
(
 MemberIDX INT IDENTITY(1,1) NOT NULL
, MemberID  VARCHAR(10)
, MemberName VARCHAR(20)
, MemberAge INT
, MemberArea   VARCHAR(4)
, CreateDate  DATETIME
)
GO

 

테이블에 IDENTITY 속성이 있는 경우에는.. 기본적으로 DATA INSERT 시에 IDENTITY 속성을 가진 컬럼명을 제외해야합니다.

 

만약 함께 기술한다면 아래와 같은 에러가 발생하게 됩니다.

2.png

 

또한... 컬럼명을 생략한 경우에도 마찬가지겠지요~!

 

3.png

 

 

이제 컬럼명을 생략해서 넣어보도록 하겠습니다.

 

4.png

 

 

정상적으로 들어갔음을 확인할 수 있습니다.

 

하지만... 에러 내용들 처럼.. SET IDENTITY_INSERT 를 사용해서 MemberIDX에 원하는 값을 넣을 수 있습니다.

 

Link: SET IDENTITY_INSERT(Transact-SQL)

 

5.png

 

 

그렇다면 현재 IDENTITY 값은 알 수 없을까?? 또한 IDENTITY 값을 변경할 순 없을까?? 라는 의문을 가지게 됩니다.

 

이것은.. DBCC CHECKIDENT 를 통해 가능합니다.

 

Link: DBCC CHECKIDENT(Transact-SQL)

 

감사합니다. ^^

 

작성일자: 2011.05.24


[출처] SQLER.COM http://www.sqler.com/383049


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?


이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요. 이스트럭(강동운)입니다.

 

오늘의 주제는 DML 중에서 INSERT 항목이 되겠습니다!

 

DML 은 Data Manipulation Language의 약자로써.. 데이터 조작어에 해당됩니다.

 

이에 관련되서는.. SELECT, INSERT, UPDATE, DELETE가 해당이 됩니다 ^^ 이 중에서 우리는 오늘 INSERT 에 대해서 알아볼 예정입니다!

 

이와 관련해서 임시 테이블을 생성해보도록 하겠습니다.

 

--//회원(회원번호, 회원아이디, 회원이름, 회원나이, 회원지역)

CREATE TABLE MemberSelect

(

 MemberIDX INT

, MemberID  VARCHAR(10)

, MemberName VARCHAR(20)

, MemberAge INT

, MemberArea   VARCHAR(4)

, CreateDate  DATETIME

)

GO

 

데이터를 INSERT 하는 방법에는 여러가지가 있습니다.

 

그중 첫번째.. 모든 컬럼명을 기술하기!

 

INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3 ....) VALUES(컬럼1의 값, 컬럼2의 값, 컬럼3의 값 ...)

GO

 

INSERT INTO MemberSelect(MemberIDX, MemberID, MemberName, MemberAge, MemberAre VALUES(1, 'hong', '홍길동',20,'서울','2011-01-01')

GO

1.png

 

 

--//컬럼명을 기술하지 않고 입력하는 두번째 방법

주의:  이 방법은 VALUES에 순서데로 기술된 컬럼의 순서가.. 실제로 생성한 테이블의 컬럼수 와 순서가 반드시 맞아야 합니다.

INSERT INTO MemberSelect
VALUES(2, 'lee', '이순신',30,'경기','2011-02-01')
GO

2.png  

 

3번째! SELECT 를 활용한 INSERT 문법

INSERT INTO MemberSelect
(
 MemberIDX
, MemberID
, MemberName
, MemberAge
, MemberArea
, CreateDate
)
SELECT
 3
, 'kim'
, '김유신'
, 40
, '경남'
, '2011-03-01'
GO

3.png

 

4번째 SELECT 절에 ROW 명을 기술하는 방법!

 

INSERT INTO MemberSelect
(
 MemberIDX
, MemberID
, MemberName
, MemberAge
, MemberArea
, CreateDate
)
SELECT
 MemberIDX = 4
, MemberID = 'kang'
, MemberName = '강감찬'
, MemberAge = 25
, MemberArea = '경기'
, CreateDate = '2011-04-01'
GO

4.png   

 

 

SQL 2008 부터 지원하는 다중 행 입력!

5.png

 

 

지금까지 가장 기본적으로 INSERT 하는 방법을 알아봤습니다 ^^

 

사실 데이터 입력방법은 이것 보다 훨씬 다양하고 많습니다~~!

 

저는 개인 적으로.. 테이블에 컬럼이 많아지면.. 어떤 컬럼이 어떤 데이터인지 구분하기 힘들기 때문에.. 4번 방법을 주로 이용합니다.

 

감사합니다.

 

다중행 입력관련된 좋은 글: http://sqlsql.tistory.com/entry/Array-Insert

 

작성일: 2011.05.24


[출처] SQLER.COM http://www.sqler.com/383042


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?




SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?