Основная команда T-SQL для ввода данных в таблицы SQL Server Express -- инструкция INSERT. Даже если база данных обновлена приложением Visual Basic или C#, внутри программного кода все равно можно обнаружить инструкцию INSERT, которая добавляет данные и строки в базу данных. Рассмотрим, как действует инструкция INSERT.

DECLARE @MyTable TABLE
(
ColumnID int,
ColumnData varchar(10),
ColumnDate datetime
)
INSERT INTO @MyTable VALUES(1,'Row 1', GETDATE())
INSERT INTO @MyTable VALUES(2,'Row 2', GETDATE())
INSERT INTO @MyTable VALUES(3,'Row 3', GETDATE())
SELECT * FROM @MyTable

Вспомнив сведения о табличных переменных, можно понять, что этот программный фрагмент создает временную табличную переменную с тремя столбцами и именем @MyTable. Каждая из трех инструкций INSERT добавляет строку в таблицу. При более внимательном взгляде на одну из инструкций INSERT выясняется, что предложение INTO указывает имя таблицы, которую предстоит использовать. В отличие от инструкций SELECT, применяемых к нескольким таблицам, область действия инструкции INSERT ограничена единственной таблицей.

Каждое предложение VALUES присваивает значение каждому из трех столбцов. Столбцы в предложении VALUES разделены запятыми и должны быть указаны в том же порядке, в котором они встречаются в таблице, а типы данных значений должны совпадать с типом данных соответствующего столбца. В образце программного кода первые два значения -- литералы, а третье -- дата, предоставляемая функцией GETDATE. Данные в предложении VALUES могут также исходить из переменной, хранимой процедуры или инструкции SELECT.

Результаты выполнения образцовых инструкций INSERT приведены ниже.

 ColumnID  ColumnData ColumnDate 
 ---------  ------------  ------------
 1  Row 1  2008-01-30 14:06:31.090
 2  Row 2  2008-01-30 14:06:31.090
 3  Row 3  2008-01-30 14:06:31.090

Типичный прием - помещать инструкции INSERT и другие функции, напрямую работающие с данными, в хранимые процедуры.

В следующей статье будет рассмотрен другой способ ввода данных в SQL Server: инструкция Bulk Insert.