2024年6月2日发(作者:)

sqlserver中select insert和insert select

在 SQL Server 中,`SELECT INTO`、`INSERT` 和 `INSERT INTO SELECT` 是用于选择数据并将其

插入到表中的不同 SQL 语句。

1. SELECT INTO:

`SELECT INTO` 语句用于从一个表中选择数据并将其插入到一个新表中。新表的结构将与

SELECT 语句中的列相匹配。

```sql

SELECT column1, column2, ...

INTO new_table

FROM old_table

WHERE condition;

```

示例:

```sql

SELECT FirstName, LastName, City

INTO NewEmployees

FROM Employees

WHERE Department = 'Sales';

```

上述示例中,`NewEmployees` 是一个新表,它包含了从 `Employees` 表中选择的符合条件

的数据。

2. INSERT:

`INSERT` 语句用于将一行或多行数据插入到表中,数据来源可以是一个值列表或另一个查询

的结果。

```sql

INSERT INTO table_name (column1, column2, ...)

VALUES (value1, value2, ...);

```

示例:

```sql

INSERT INTO Customers (FirstName, LastName, Email)

VALUES('John','Doe','********************');

```

3. INSERT INTO SELECT:

`INSERT INTO SELECT` 语句用于选择数据并将其插入到表中。与 `SELECT INTO` 不同,`INSERT

INTO SELECT` 是将选定的数据插入到一个现有的表中。

```sql

INSERT INTO destination_table (column1, column2, ...)

SELECT column1, column2, ...

FROM source_table

WHERE condition;

```

示例:

```sql

INSERT INTO Orders (CustomerID, OrderDate, ProductID, Quantity)

SELECT CustomerID, GETDATE(), ProductID, Quantity

FROM ShoppingCart

WHERE CustomerID = 123;

```

上述示例中,从 `ShoppingCart` 表中选择符合条件的数据,并将它们插入到 `Orders` 表中。

需要注意的是,使用这些语句时应该确保目标表的结构与源表或源查询的结果兼容。此外,

对于 `INSERT INTO SELECT` 语句,确保选择的列和目标表的列一一对应。