sql - 返回受 UPDATE 语句影响的行数

标签 sql sql-server

如何获取存储过程 (SQL Server 2005) 中受 UPDATE 查询影响的行数作为结果集。例如

CREATE PROCEDURE UpdateTables
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    UPDATE Table1 Set Column = 0 WHERE Column IS NULL
    UPDATE Table2 Set Column = 0 WHERE Column IS NULL
    UPDATE Table3 Set Column = 0 WHERE Column IS NULL
    UPDATE Table4 Set Column = 0 WHERE Column IS NULL
END

然后返回:

Table1    Table2    Table3    Table4
32        45        0         3

最佳答案

CREATE PROCEDURE UpdateTables
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    DECLARE @RowCount1 INTEGER
    DECLARE @RowCount2 INTEGER
    DECLARE @RowCount3 INTEGER
    DECLARE @RowCount4 INTEGER

    UPDATE Table1 Set Column = 0 WHERE Column IS NULL
    SELECT @RowCount1 = @@ROWCOUNT
    UPDATE Table2 Set Column = 0 WHERE Column IS NULL
    SELECT @RowCount2 = @@ROWCOUNT
    UPDATE Table3 Set Column = 0 WHERE Column IS NULL
    SELECT @RowCount3 = @@ROWCOUNT
    UPDATE Table4 Set Column = 0 WHERE Column IS NULL
    SELECT @RowCount4 = @@ROWCOUNT

    SELECT @RowCount1 AS Table1, @RowCount2 AS Table2, @RowCount3 AS Table3, @RowCount4 AS Table4
END

关于sql - 返回受 UPDATE 语句影响的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1103260/

相关文章:

mysql - 非聚合分组列是否需要 HAVING?

asp.net - 在 SQL Server 中将日期转换为刻度

sql - sql中小数列的四舍五入

mysql - 查询坚持 'Order By' 子句中的列匹配 'Group by' 子句中的列

sql - 如何检查 SQL Server 日期时间列是否为空?

sql - 根据sql server中的where子句条件顺序检索结果集

php - 在php页面中显示表中的特殊字符

php - 从数据库PHP计算大数据

sql-server - 如何保持事务和ssis包执行相互等待?

php - 合并具有不同列号的两个不同表的结果,按相同键对它们进行排序