如何使用TypeORM的Delete函数获取SQL Server中删除的行数(JS环境)
获取MS SQL Server删除操作的受影响行数
你的代码可以通过TypeORM返回的执行结果直接拿到删除行数,另外先提醒下:直接把日期变量拼进SQL里有SQL注入风险,必须改成参数绑定的写法,同时还能避免日期格式的问题。
修改后的代码如下:
// 执行删除操作并接收结果 const deleteResult = await getRepository(tableName, 'connection') .createQueryBuilder() .delete() .where('timeCreated BETWEEN :startDate and :endDate', { startDate, endDate }) .execute(); // 从结果中提取删除的行数 const deletedRowCount = deleteResult.affected; // 这里可以直接使用deletedRowCount,比如返回给调用方或者打印日志
说明:
- TypeORM的
DeleteQueryBuilder.execute()方法返回的DeleteResult对象里,affected属性就是MS SQL Server返回的删除行数 - 用
:参数名绑定变量的方式,既安全又能让TypeORM自动处理日期类型的转换,不用手动加单引号
如果你的TypeORM版本比较老,affected可能没有直接暴露,这时候可以从raw字段里取SQL Server原生返回的结果:
const deletedRowCount = deleteResult.raw[0].rowsAffected;
内容的提问来源于stack exchange,提问作者MikeD
相关产品推荐
相关产品推荐

