SQL Server ROWCOUNT() 函数使用指南
在 SQL Server 中,@@ROWCOUNT
是一个系统变量,用于返回最后一个执行的 Transact-SQL 语句所影响的行数。它可以在存储过程和触发器中使用,以及在客户端应用程序中。
语法
@@ROWCOUNT
不需要任何参数或参数列表。它返回一个整数值,表示最后一个 SQL 语句所影响的行数。
使用场景
@@ROWCOUNT
主要用于以下情况:
- 在存储过程或触发器中获取最后一个 SQL 语句所影响的行数。
- 在客户端应用程序中获取最后一个 SQL 语句所影响的行数。
示例
示例 1:在存储过程中使用 @@ROWCOUNT
假设我们有一个存储过程,用于更新名为 Customers 的表格中的数据。以下是该存储过程的示例代码:
CREATE PROCEDURE UpdateCustomer
@FirstName nvarchar(50),
@LastName nvarchar(50),
@Email nvarchar(50),
@CustomerId int
AS
BEGIN
UPDATE Customers
SET FirstName = @FirstName,
LastName = @LastName,
Email = @Email
WHERE CustomerId = @CustomerId
SELECT @@ROWCOUNT AS 'Rows Updated'
END
存储过程使用 UPDATE
语句更新 Customers 表格中的数据,并使用 SELECT
语句返回受影响的行数。在存储过程执行后,@@ROWCOUNT
返回的值将被打印到结果集中。
示例 2:在客户端应用程序中使用 @@ROWCOUNT
假设我们有一个 C# 应用程序,用于向名为 Customers 的表格中插入新数据。以下是该应用程序的示例代码:
using System.Data.SqlClient;
string connectionString = "Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True";
string insertQuery = "INSERT INTO Customers (FirstName, LastName, Email) VALUES ('John', 'Doe', '[email protected]')";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(insertQuery, connection))
{
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("Rows inserted: " + rowsAffected);
Console.WriteLine("Rows affected: " + command.Parameters["@rowsAffected"].Value);
}
}
应用程序使用 INSERT
语句向 Customers 表格中插入新数据,并使用 ExecuteNonQuery()
方法执行该语句。在执行后,@@ROWCOUNT
返回的值可以通过检查 SqlCommand
对象的 Parameters
集合中的 @rowsAffected
参数来获得。
结论
@@ROWCOUNT
是一个非常有用的系统变量,可以在存储过程、触发器和客户端应用程序中使用,以获取最后一个 SQL 语句所影响的行数。