INSERT(SQL Server Compact)

테이블에 새 행을 추가합니다.


INSERT [INTO] 
      table_name  [ ( column_list ) ] 
      { VALUES 
      ( { DEFAULT | NULL | expression } [ ,...n] ) 
| derived_table
       }

[INTO]

INSERT 와 대상 테이블 중간에 사용할 수 있는 옵션 키워드입니다.

table_name

데이터를 저장할 테이블의 이름입니다.

(column_list)

데이터를 추가할 하나 이상의 열 목록입니다. column_list 인수는 괄호로 묶고 쉼표로 구분합니다.

VALUES

삽입할 데이터 값의 목록을 보여 줍니다. column_list을 지정한 경우에는 열 목록의 각 열에, 이 외의 경우에는 테이블의 각 열에 데이터 값이 하나씩 있어야 합니다. 값 목록은 괄호로 묶어야 합니다.

DEFAULT

열에 정의된 기본값은 Microsoft SQL Server Compact에서 사용해야 하는 필수 사항입니다.

NULL

알 수 없는 값임을 나타냅니다. NULL 값은 빈 값이나 0 값과는 다릅니다.

expression

상수, 변수 또는 식입니다.

derived_table

테이블에 삽입할 데이터 행을 반환하는 모든 유효한 SELECT 문입니다.

테이블의 데이터를 교체하려면 DELETE 문을 사용하여 기존 데이터를 지운 다음 INSERT로 새 데이터를 로드해야 합니다. 기존 행의 열 값을 수정하려면 UPDATE를 사용합니다.

삽입 column_list을 생략하면 테이블의 모든 열을 열 서수 위치의 오름차순에 따라 식별하는 삽입 열 목록이 암시적으로 지정됩니다.

테이블의 열은 column_list에서 한 번만 확인할 수 있습니다.

열이 column_list에 없는 경우 SQL Server Compact에서 열의 정의를 기준으로 값을 제공할 수 있어야 합니다. 그렇지 않으면 행을 로드할 수 없습니다. SQL Server Compact에서는 열이 다음 조건 중 하나를 만족하면 열 값을 자동으로 제공합니다.

  • ID 속성이 있는 경우. 다음 증가 ID 값이 사용됩니다.

  • 기본값이 있는 경우. 열의 기본값이 사용됩니다.

  • Null 값을 허용하는 경우. Null 값이 사용됩니다.

ID 열에 명시적 값을 삽입할 때는 열 목록 및 VALUES 목록을 사용해야 합니다. VALUES 목록의 값이 테이블의 열과 순서가 다르거나 테이블의 각 열에 값이 없는 경우 column_list를 사용하여 들어오는 각 값을 저장할 열을 명시적으로 지정해야 합니다.

DEFAULT를 사용하여 열 값을 지정하는 경우 해당 열에 기본값이 삽입됩니다. 열에 기본값이 없고 Null 값을 허용하는 경우 NULL이 삽입됩니다. ID 열에는 DEFAULT를 사용할 수 없습니다.

uniqueidentifier 데이터 형식으로 만든 열은 특수한 형식의 16바이트 이진 값을 저장합니다. SQL Server Compact에서는 ROWGUID 열에 대해 uniqueidentifier 데이터 형식의 값을 자동으로 생성하지만 ID 열은 그렇지 않습니다. 삽입 작업 중에는 uniqueidentifier 열에 uniqueidentifier 데이터 형식의 변수 및 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx(하이픈을 포함하여 36자, x는 0-9 또는 a-f의 16진수) 형식의 문자열 상수를 사용할 수 있습니다. 예를 들어 6F9619FF-8B86-D011-B42D-00C04FC964FF는 uniqueidentifier 변수 또는 열에 대해 유효한 값입니다.

행을 삽입할 때는 다음 규칙을 따라야 합니다.

  • nchar , nvarchar 또는 varbinary 데이터 형식의 값이 열에 로드되고 있는 경우 다음 표의 정의에 따라 여백 또는 후행 공백(ncharnvarchar의 경우 공백, varbinary의 경우 0)의 잘라내기가 결정됩니다.

    데이터 형식

    기본 작업

    nchar /binary

    nchar 열의 경우 열 길이까지 원래 값을 후행 공백으로 채우고 binary 열의 경우는 후행 0으로 채웁니다.

    nvarchar

    nvarchar 열에 삽입된 문자 값의 후행 공백은 잘리지 않습니다. 값을 열 길이까지 채우지 않습니다.

    varbinary

    varbinary 열에 삽입된 후행 이진 0은 잘리지 않습니다. 값을 열 길이까지 채우지 않습니다.

  • INSERT 문이 제약 조건 또는 규칙을 위반하거나 열의 데이터 형식과 호환되지 않는 값이 있는 경우 문이 실패하며 SQL Server Compact에서 오류 메시지를 표시합니다.

  • INSERT SELECT를 사용하여 여러 행을 로드 중인 경우 로드하고 있는 값이 규칙이나 제약 조건을 위반하면 전체 구문이 중지되고 행이 로드되지 않습니다.

참고 참고

여러 개의 쿼리를 동시에 실행하려면 문마다 줄바꿈 문자를 포함해야 하고 세미콜론으로 끝나야 합니다. 모든 주석은 두 개의 하이픈(--)으로 시작해야 합니다.

1. 간단한 INSERT 문 사용

다음 예에서는 Customers 테이블에 새로운 회사를 추가합니다. 특정 정보가 없는 경우 Null 값이 삽입됩니다.

INSERT INTO Customers VALUES ('TPC', 'The Phone Company', 'John Kane', 'Owner', NULL, 'Forks', NULL, NULL, 'USA', NULL, DEFAULT);

2. 열과 순서가 다른 데이터 삽입

다음 예에서는 column_list 및 VALUES 목록을 사용하여 Customers 테이블의 각 열에 삽입할 값을 명시적으로 지정합니다.

INSERT INTO Customers ([Customer ID], [Company Name], Country, Phone)
VALUES ('WWI', 'Wide World Importers', 'USA', '206-555-0165');

3. 열 수보다 값 수가 적은 데이터 삽입

다음 예의 Employees 테이블에는 EmployeeID, LastName 및 FirstName의 세 열이 있습니다. 다음 구문에서는 EmployeeID 값을 입력하지 않고 Employees 테이블에 Ben Smith를 추가합니다.


INSERT INTO Employees ([Last Name], [First Name]) VALUES ('Smith', 'Ben');

4. 파생 테이블을 사용하여 데이터 삽입

다음 예에서는 derived_table 을 사용하여 값을 삽입합니다.

INSERT INTO Table1 (col1, col2) SELECT (col1, col2) from Table2;

5. 데이터 값 삽입

다음 예에서는 날짜 값을 삽입하는 방법을 보여 줍니다.


INSERT INTO Orders ([Order ID], [Customer ID], [Order Date])
VALUES (34, 'FRANS', '4/2/2004');

표시: