Основная команда 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.