В этом учебном пособии вы узнаете, как использовать оператор INSERT в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Оператор INSERT SQL Server (Transact-SQL) используется для вставки одной записи или нескольких записей в таблицу на SQL Server.
Синтаксис
Простая форма синтаксиса оператора INSERT при вставке одной записи с использованием ключевого слова VALUES в SQL Server (Transact-SQL):
(column1, column2, ... )
VALUES
(expression1, expression2, ... ),
(expression1, expression2, ... ),
...;
Полный синтаксис оператора INSERT при вставке одной записи с использованием ключевого слова VALUES в SQL Server (Transact-SQL):
(column1, column2, ... )
VALUES
( DEFAULT | NULL | expression1,
DEFAULT | NULL | expression2,
...
);
Или
Синтаксис оператора SQL Server INSERT при вставке одной записи с использованием ключевого слова DEFAULT VALUES:
(column1, column2, ... )
DEFAULT VALUES;
Или...
Синтаксис простейшей форме для оператора SQL Server INSERT при вставке нескольких записей с помощью подзапроса:
(column1, column2, ... )
SELECT expression1, expression2, ...
FROM source_table
[WHERE conditions];
Полный синтаксис оператора SQL Server INSERT при вставке нескольких записей с использованием подвыборки:
INTO table
(column1, column2, ... )
SELECT expression1, expression2, ...
FROM source_table
[WHERE conditions];
Параметры или аргументы
table - таблица для вставки записей.
column1, column2 - столбцы таблицы для вставки значений.
expression1, expression2 - значения для назначения столбцам в таблице. Таким образом, column1 присваивается значение expression1, column2 присваивается значение expression2 и т.д.
TOP (top_value) - необязательный. Если указано, он будет вставлять верхнее число строк на основе top_value. Например, TOP (10) будет вставлять верхние 10 строк из полного набора результатов.
PERCENT- необязательный. Если задан PERCENT, то верхние строки основаны на проценте top_value от общего набора результатов (как определено значением PERCENT). Например, TOP (10) PERCENT введет верхние 10% полного набора результатов.
source_table - исходная таблица при вставке данных из другой таблицы.
WHERE conditions - необязательный. Условия, которые должны быть выполнены для вставленных записей.
Примечание
- При вставке записей в таблицу с помощью оператора SQL Server INSERT вы должны указать значение NOT NULL для каждого столбца.
- Вы можете опустить столбец из оператора SQL Server INSERT, если столбец допускает значения NULL.
Пример использования ключевого слова VALUES
Самый простой способ создать запрос SQL Server INSERT для отображения значений с помощью ключевого слова VALUES.
Например:
1 2 3 4 |
INSERT INTO employees (employee_id, last_name, first_name) VALUES (10, 'Kane', 'Tom'); |
Оператор SQL Server INSERT приведет к тому, что одна запись будет вставлена в таблицу employees. Эта новая запись будет иметь employee_id = 10, last_name = 'Kane' и first_name = 'Tom'.
Вы также можете использовать этот синтаксис для вставки более чем одной записи за один раз. Например:
1 2 3 4 5 |
INSERT INTO employees (employee_id, last_name, first_name) VALUES (10, 'Smit','John'), (11, 'Cruise', 'Tom'); |
В этом примере INSERT показано, как вставить более одной записи с использованием ключевого слова VALUES. В этом примере две записи вставляются в таблицу employees. Первая запись имеет employee_id = 10, last_name 'Smit' и first_name = 'John'. Вторая запись имеет employee_id = 11, last_name = 'Cruise' и first_name = 'Tom'.
Это будет эквивалентно следующим двум операторам INSERT:
1 2 3 4 5 6 7 8 9 |
INSERT INTO employees (employee_id, last_name, first_name) VALUES (10, 'Smit','John'); INSERT INTO employees (employee_id, last_name, first_name) VALUES (11, 'Cruise', 'Tom'); |
Пример использования ключевого слова DEFAULT VALUES
В SQL Server вы также можете вставить запись в таблицу с использованием синтаксиса DEFAULT VALUES.
Например:
1 2 3 4 5 |
INSERT INTO contacts (contact_id, last_name, first_name) SELECT employee_id, last_name, first_name FROM employees WHERE employee_id <= 100; |
Поместив инструкцию SELECT в оператор INSERT, вы можете быстро выполнить многострочную вставку.
С этим типом вставки вы можете проверить количество вставленных строк. Вы можете определить количество строк, которые будут вставлены, запустив следующий SQL оператор SELECT перед выполнением вставки.
1 2 3 |
SELECT count(*) FROM employees WHERE employee_id <= 100; |