37

我偶尔在 Oracle 和 SQL Server 之间切换,经常忘记如何在 SQL Server 中完成一些最琐碎的任务。我想使用 SQL 手动将一行数据插入到 SQL Server 数据库表中。最简单的方法是什么?

例如,如果我有一个 USERS 表,其中包含 ID(编号)、FIRST_NAME 和 LAST_NAME 列,我使用什么查询将行插入到该表中?

另外,如果我想一次插入多行,我应该使用什么语法?

4

4 回答 4

61

要插入单行数据:

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

要对特定列(而不是所有列)进行插入,您必须指定要更新的列。

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

在 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'

注意,“INTO”关键字在 INSERT 查询中是可选的。来源和更高级的查询可以在这里找到。

于 2012-11-14T20:37:31.167 回答
10

以下是向表中插入数据的 4 种方法。

  1. 表列顺序已知时的简单插入。

    INSERT INTO Table1 VALUES (1,2,...)

  2. 简单插入到表的指定列中。

    INSERT INTO Table1(col2,col4) VALUES (1,2)

  3. 批量插入时...

    1. 您希望将 Table2 的每一列插入 Table1
    2. 你知道Table2的列顺序
    3. 您确定 Table2 的列顺序在使用此语句时不会更改(也许您该语句只会使用一次)。

    INSERT INTO Table1 {Column sequence} SELECT * FROM Table2

  4. 将选定数据批量插入到 Table2 的指定列中。

.

INSERT INTO Table1 (Column1,Column2 ....)
    SELECT Column1,Column2...
       FROM Table2
于 2014-02-13T12:26:31.890 回答
1

我希望这能帮到您

创建表:

create table users (id int,first_name varchar(10),last_name varchar(10));

将值插入表中:

insert into users (id,first_name,last_name) values(1,'Abhishek','Anand');
于 2018-12-25T13:01:01.940 回答
0

一张表数据插入另一张表

“插入到partner_products(PARTNER_ID,partner_category_id,pantryo_main_category_id,pantryo_inventory_id,partner_product_name,partner_product_brand,partner_product_price,partner_product_quantity,partner_product_unit)选择 '$ JSON [PARTNER_ID]',partner_category_id,pantryo_main_category_id,pantryo_inventory_id,pantryo_item_name,pantryo_brand_name,pantryo_item_price,pantryo_item_qty,pantryo_item_unit从pantryo_inventory其中partner_category_id='".$json['partner_category']."'"

于 2021-09-02T10:56:19.473 回答