sql server 2022插入数据insert用法
时间: 2025-05-03 17:46:50 浏览: 30
### SQL Server 2022 中 `INSERT` 语句的用法
#### 插入单行数据
在 SQL Server 2022 中,`INSERT INTO` 语句用于向表中插入新的记录。以下是基本语法:
```sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
```
此语法允许指定要插入到特定列中的值[^1]。
#### 使用 SELECT 子句插入多行数据
除了插入单行数据外,还可以通过 `SELECT` 查询的结果集来批量插入数据。其语法如下所示:
```sql
INSERT INTO target_table (column1, column2, column3, ...)
SELECT source_column1, source_column2, source_column3, ...
FROM source_table;
```
这种形式特别适合于从其他表复制数据或将查询结果保存至目标表中。
#### 结合 JSON 对象生成器的新特性
随着 Microsoft SQL Server 2022 的推出,在某些场景下可利用新增加的功能简化操作流程。例如,如果需要基于一系列数值创建测试数据,则可以结合窗口函数以及 `GENERATE_SERIES()` 函数一起使用。下面展示了一个例子,它展示了如何生成连续整数并将其作为新纪录的一部分存储下来:
```sql
-- 假设有一个名为 Numbers 的表格结构已存在
INSERT INTO Numbers(NumberValue)
SELECT value FROM GENERATE_SERIES(1, 10); -- 这里我们插入了十个由1到10组成的序列项
```
上述代码片段运用到了 `GENERATE_SERIES()` 来快速填充一组有序数字列表[^2][^3]。
另外值得注意的是关于JSON对象构建方面的改进也能够帮助开发者更方便地处理复杂的数据交换需求。比如当面对来自外部系统的半结构化输入源时,可以直接解析成关系型数据库内部表示形式再执行相应的写入动作:
```sql
DECLARE @json NVARCHAR(MAX) = N'[
{"id": 1,"name":"Alice"},
{"id": 2,"name":"Bob"}
]';
INSERT INTO People(Id, Name)
SELECT id,name FROM OPENJSON(@json,'$')
WITH (
id INT '$.id',
name VARCHAR(50) '$.name'
);
```
这里演示了怎样把一个包含多个用户的 JSON 数组转换为实际的关系模式下的两条独立记录,并成功加入到 Peoples 表格当中去[^4]。
#### 返回受影响的信息
为了跟踪哪些具体条目被添加进了系统或者捕获自动生成的关键字字段(如IDENTITY),可以通过OPTIONAL子句实现附加反馈机制:
```sql
INSERT INTO Employees(LastName, FirstName)
OUTPUT inserted.EmployeeID, inserted.LastName, inserted.FirstName
VALUES('Smith', 'John');
```
在这个案例里面,“inserted.”前缀代表刚完成的操作所涉及的内容;因此整个命令不仅完成了人员档案建立工作同时也汇报出了最新产生的唯一识别码连同其它属性一同呈现出来给调用方知晓。
阅读全文