sqlsever批量插入数据遇到相同的数据如何跳过
时间: 2024-11-12 16:39:39 浏览: 4
sql20200215_sqlserver_sql批量插入_
在SQL Server中,如果你想批量插入数据并遇到重复的键值时自动跳过插入操作,可以利用`INSERT INTO...SELECT`语句结合`OUTPUT` clause来实现。`OUTPUT` clause允许你在插入数据的同时获取插入操作的结果,包括哪些行因为主键冲突而未成功插入。
例如,假设你想在名为`Table`的表中插入数据,其中有一个唯一标识字段`Id`:
```sql
INSERT INTO Table (Column1, Column2)
SELECT Value1, Value2
FROM YourSourceTable
WHERE NOT EXISTS (
SELECT 1 FROM Table WHERE Id = SourceTable.Id
)
OUTPUT INSERTED.Id,Inserted.Column1,Inserted.Column2;
```
在这个例子中,如果`SourceTable`中的某个`Id`已经在`Table`中存在,那么该行将不会被插入,并通过`OUTPUT`返回已存在的`Id`以及对应的`Column1`和`Column2`值。如果你只想查看哪些数据未被插入,你可以省略`INSERTED.*`,只保留需要的信息。
阅读全文