수색…


소개

INSERT INTO 문은 테이블에 새 레코드를 삽입하는 데 사용됩니다.

Hello World INTO 테이블 삽입

CREATE TABLE MyTableName
(
    Id INT,
    MyColumnName NVARCHAR(1000)
)
GO

INSERT INTO MyTableName (Id, MyColumnName)
VALUES (1, N'Hello World!')
GO    

특정 열에 대한 INSERT

특정 열에 삽입하려면 (모든 열과는 달리) 업데이트 할 열을 지정해야합니다.

INSERT INTO USERS (FIRST_NAME, LAST_NAME)
VALUES ('Stephen', 'Jiang');

이것은 나열하지 않은 열이 nullable, ID, 타임 스탬프 데이터 형식 또는 계산 열일 경우에만 작동합니다. 또는 기본 값 제약 조건이있는 열. 따라서 이들 중 하나라도 Null을 허용하지 않는 비 식별, 타임 스탬프가 아닌 계산되지 않은 기본이 아닌 값의 열이있는 경우 이러한 종류의 삽입을 시도하면 다음과 같은 오류 메시지가 표시됩니다. 해당 필드 (들)에 대한 값.

여러 행의 데이터 삽입

SQL Server 2008 이상에서 여러 데이터 행을 삽입하려면 :

INSERT INTO USERS VALUES
(2, 'Michael', 'Blythe'),
(3, 'Linda', 'Mitchell'),
(4, 'Jillian', 'Carson'),
(5, 'Garrett', 'Vargas');

이전 버전의 SQL Server에서 여러 행의 데이터를 삽입하려면 다음과 같이 "UNION ALL"을 사용하십시오.

INSERT INTO USERS (FIRST_NAME, LAST_NAME)
SELECT 'James', 'Bond' UNION ALL
SELECT 'Miss', 'Moneypenny' UNION ALL
SELECT 'Raoul', 'Silva'

INSERT 쿼리에서 "INTO"키워드는 선택 사항입니다. 또 다른 경고는 SQL Server가 하나의 INSERT에서 1000 개의 행만 지원하므로 일괄 적으로 분할해야한다는 것입니다.

단일 데이터 행 삽입

데이터의 단일 행은 두 가지 방법으로 삽입 할 수 있습니다.

INSERT INTO USERS(Id, FirstName, LastName)
VALUES (1, 'Mike', 'Jones');

또는

INSERT INTO USERS
VALUES (1, 'Mike', 'Jones');

두 번째 insert 문은 테이블 열과 정확히 같은 순서로만 값을 허용하지만 첫 번째 삽입에서는 값의 순서를 다음과 같이 변경할 수 있습니다.

INSERT INTO USERS(FirstName, LastName, Id)
VALUES ('Mike', 'Jones', 1);

새로운 ID를 얻으려면 OUTPUT을 사용하십시오.

INSERT하면 OUTPUT INSERTED.ColumnName 을 사용하여 새로 삽입 된 행 (예 : 새로 생성 된 ID)에서 값을 가져올 수 있습니다. IDENTITY 열이나 기본 값 또는 계산 된 값이 있으면 유용합니다.

프로그래밍 방식으로 이것을 호출하면 (예 : ADO.net) 일반 쿼리로 취급하고 SELECT 문을 작성한 것처럼 값을 읽습니다.

-- CREATE TABLE OutputTest ([Id] INT NOT NULL PRIMARY KEY IDENTITY, [Name] NVARCHAR(50))

INSERT INTO OutputTest ([Name])
OUTPUT INSERTED.[Id]
VALUES ('Testing')

최근에 추가 된 행의 ID가 동일한 쿼리 또는 저장 프로 시저 집합 내에 필요한 경우

-- CREATE a table variable having column with the same datatype of the ID

DECLARE @LastId TABLE ( id int);

INSERT INTO OutputTest ([Name])
OUTPUT INSERTED.[Id] INTO @LastId
VALUES ('Testing')

SELECT id FROM @LastId

-- We can set the value in a variable and use later in procedure

DECLARE @LatestId int = (SELECT id FROM @LastId)

SELECT 쿼리 결과에서 INSERT

SQL 쿼리 (단일 또는 다중 행)에서 검색된 데이터를 삽입하려면

INSERT INTO Table_name (FirstName, LastName, Position)
SELECT FirstName, LastName, 'student' FROM Another_table_name

SELECT의 'student'는 각 행에 삽입 될 문자열 상수입니다.

필요한 경우 동일한 테이블에서 데이터를 선택하고 삽입 할 수 있습니다



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow