如何在SQL Server数据库中进行多个值的插入?通常在MySQL中,我使用以下查询:
INSERT INTO table (column1, column2)
VALUES(value1, value2), (value3, value4)
ON DUPLICATE KEY UPDATE column2 = VALUES(value2);
有没有一种方法可以使用 MERGE
一次性在 SQL Server 中执行多个插入操作?
如何在SQL Server数据库中进行多个值的插入?通常在MySQL中,我使用以下查询:
INSERT INTO table (column1, column2)
VALUES(value1, value2), (value3, value4)
ON DUPLICATE KEY UPDATE column2 = VALUES(value2);
有没有一种方法可以使用 MERGE
一次性在 SQL Server 中执行多个插入操作?
MERGE INTO YourTable T
USING ( VALUES ( 'value1', 'value9' ),
( 'value3', 'value4' ) ) AS S ( column1, column2 )
ON T.column1 = S.column1
WHEN MATCHED THEN
UPDATE
SET column2 = S.column2
WHEN NOT MATCHED THEN
INSERT ( column1, column2 ) VALUES ( column1, column2 );
不确定我是否完全理解了你的问题,但是你可以按照以下方式在 T-SQL 中使用 MERGE
语句:
在你的情况下,合并操作可能如下所示:
merge yourtable as target
using
(select value1 a, value2 b
union
select value3 a, value4 b) as source
on target.column1 = source.a
when matched and target.column2 <> source.b
then update
set target.col2 = source.b
when not matched by target
then
insert (column1, column2) values (source.a, source.b);
这个例子使用了硬编码的值,但是当你从另一个表插入时也同样适用。