Sql server Insert语句的受影响行是否始终为1?

Sql server Insert语句的受影响行是否始终为1?,sql-server,database,Sql Server,Database,受影响的行是指语句成功运行,即没有语法错误或主键重复等 检查ExecuteNonQuery()的返回值是否没有意义 发件人: 对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也是-1 因此,否,数字可以不同于1,尤其是在语句中插入多行时。否 create table #foo ( id int primary ke

受影响的行是指语句成功运行,即没有语法错误或主键重复等

检查ExecuteNonQuery()的返回值是否没有意义

发件人:

对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也是-1

因此,否,数字可以不同于1,尤其是在语句中插入多行时。

create table #foo (
  id int primary key,
  name text
);

insert into #foo values
(1,'a'),
(2,'b');

(2行受影响)

在Insert语句中,受影响行的数量取决于插入表中的值。
如果为两行输入值,则两行将受到影响。

绝对不会。如果您的insert语句使用select作为源,以便插入多行,该怎么办?还有其他方法可以让insert插入多行。触发器是有效点。即使插入一行,也可能会运行一些触发器。
create table #foo (
  id int primary key,
  name text
);

insert into #foo values
(1,'a'),
(2,'b');