SQL Server INSERT 语句将新记录添加到表或将数据加载到表中。此 INSERT 语句的语法如下所示。
INSERT INTO [DestinationTable] ([Column1], [Column2],..., [ColumnN]) VALUES ([Column1_Value], [Column2_Value],..., [ColumnN_Value])
- DestinationTable:完全限定要放入记录的表名
- Column1…..ColumnN:从表中选择列数。
- Column1_Value…..ColumnN_Value:您要放入的值。例如,为 Column1 加载 Column1_Value。如果省略字段名,则必须按照目标表结构定义的顺序指定 column_values(字段值)。
我们可以将此 INSERT 语句写作:
INSERT INTO [DestinationTable] VALUES ([Column1_Value], [Column2_Value],..., [ColumnN_Value])
此表包含两条记录,我们将对其执行插入操作。

SQL Server INSERT 语句示例
此 INSERT 语句示例以更传统的方式将新记录放入表中。此处,我们没有加载 ID 值,因为它是一个标识列,它将自动更新。
INSERT INTO [dbo].[SQLInsert] (
[FirstName], [LastName], [Occupation], [YearlyIncome], [Sales])
VALUES ('Tutorial', 'Gateway', 'Education', 10000, 200)

如果我们将所有列的数据加载到目标中,则可以忽略目标的列名(语法 2)。这意味着上面的 INSERT 语句也可以写成:
INSERT INTO [dbo].[SQLInsert]
VALUES ('SQL', 'Programming', 'Database', 50000, 1800)
提示:忽略列名不是一个好习惯。因此,在 SQL Server 中始终提供列名。
以上查询会将数据放入 [FirstName]、[LastName]、[Occupation]、[YearlyIncome] 和 [Sales] 列。每当您省略字段名时,都必须按照目标表结构定义的顺序指定 column_values(字段值)。这意味着 SQL 值将放入 [FirstName] 列等。

如何将多条记录插入到表中?
此 SQL Server INSERT 语句示例以更传统的方式将多条记录加载到表中。
INSERT INTO [SQLInsert]
VALUES ('Virat', 'Kohli', 'Cricket', 15700, 800)
INSERT INTO [dbo].[SQLInsert]
VALUES ('Rohit', 'Sharma', 'Cricket', 15000, 500)

加载多条记录最古老的方法。
INSERT INTO [SQLInsert] SELECT 'John', 'Levi', 'Professional', 75700, 1900 UNION ALL SELECT 'Doe', 'Martin', 'Management', 95000, 5600

这里,我们使用最流行的方法将多条记录放入表中。它适用于 2008 及更高版本。
INSERT INTO [SQLInsert]
VALUES ('Imran', 'Khan', 'Skilled Professional', 15900, 100)
,('Doe', 'Lara', 'Management', 15000, 60)
,('Ramesh', 'Kumar', 'Professional', 65000, 630)

如何将少量记录插入到表中?
在此 SQL Server INSERT 语句示例中,我们将少量记录放入表中。请记住,当您将少量记录加载到目标时,必须指定列名。
INSERT INTO [dbo].[SQLInsert] (
[FirstName], [Occupation], [Sales])
VALUES ('Insert', 'SQL Tutorials', 1225)
以上查询会将数据放入 [FirstName]、[Occupation] 和 [Sales] 列。剩余列中将添加 NULL 值。

INSERT INTO SELECT 语句
我们用于查询的 Employ 表

在此 SQL INSERT 语句示例中,我们从 Employ 表中选择行并将其加载到目标中。这里,我们使用 WHERE 子句限制行。
INSERT INTO [dbo].[SQLInsert] SELECT [FirstName], [LastName], [Occupation], [YearlyIncome], [Sales] FROM Employ WHERE ID > 2
以上查询将源表中 [ID] 值大于 2 的 [FirstName]、[LastName]、[Occupation]、[YearlyIncome] 和 [Sales] 列添加到目标中。
请参阅文章。让我们看看选定的数据是否已加载到目标中。

评论已关闭。