梦幻的星空 发表于 2021-5-27 16:07

System.Data.Common.DbCommand.ExecuteNonQuery()执行merge into返回负数

数据库:Azure SQL
程序语言:C#.NET

System.Data.Common.DbCommand.ExecuteNonQuery()执行merge into语句不清楚为什么返回负数,有人遇到过类似的问题吗?
程序运行了大半年一直没出过这个问题,最近才突然出现的。
本地一直没法重现,而且同一段sql有时候返回的不是负数,有时候又返回负数,所以一直找不到原因。

执行的merge into语句结构如下:
MERGE
INTO TABLE_A AS A
USING (
    SELECT ...
) AS B
    ON (
      ...
    ) WHEN MATCHED THEN UPDATE
SET
...
WHEN NOT MATCHED THEN
INSERT (
...
)
VALUES (
...
);

longiana 发表于 2021-5-27 18:04

对于UPDATE,INSERT和DELETE语句,返回值是该命令影响的行数。 对于所有其他类型的语句,返回值为-1。

梦幻的星空 发表于 2021-5-27 18:13

longiana 发表于 2021-5-27 18:04
对于UPDATE,INSERT和DELETE语句,返回值是该命令影响的行数。 对于所有其他类型的语句,返回值为-1。

对于这个merge into应该属于执行insert和update吧?而且如果merge into是返回-1的话,应该一直是-1才对,问题是我这运行了很久都是返回大于等于0的值,最近才出现返回负数的问题。

梦幻的星空 发表于 2021-6-1 09:44

果然都没人遇到过类似情况吗?
页: [1]
查看完整版本: System.Data.Common.DbCommand.ExecuteNonQuery()执行merge into返回负数