ms sql 获得插入炒作的影响行数
时间: 2024-09-27 20:14:59 浏览: 35
在MS SQL Server中,如果你想要获取插入操作影响的行数,可以使用`@@ROWCOUNT`系统变量。这个变量会在一次DML(Data Manipulation Language,如INSERT、UPDATE、DELETE)操作之后自动更新,表示了受影响的行数。
例如,当你执行一个INSERT语句后,你可以立即查看`@@ROWCOUNT`的值:
```sql
INSERT INTO YourTable (Column1, Column2)
VALUES ('Value1', 'Value2');
DECLARE @RowCount INT;
SET @RowCount = @@ROWCOUNT;
SELECT 'Inserted rows: ' + CAST(@RowCount AS VARCHAR(10));
```
上述代码首先执行了INSERT操作,然后设置`@RowCount`等于`@@ROWCOUNT`的值,并将其打印出来,显示了插入了多少行。
请注意,如果你在一个存储过程中使用了事务并且发生了回滚,`@@ROWCOUNT`可能会返回0,因为它只记录最终提交操作的影响行数。
相关问题
vb.net 向 SQLsever 数据库插入1行数组数据
以下是向SQL Server数据库插入1行数组数据的VB.NET代码示例:
```vb.net
Dim conn As New SqlConnection("Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;")
Dim cmd As New SqlCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "INSERT INTO myTable (column1, column2, column3) VALUES (@val1, @val2, @val3)"
Dim values() As String = {"value1", "value2", "value3"}
cmd.Parameters.AddWithValue("@val1", values(0))
cmd.Parameters.AddWithValue("@val2", values(1))
cmd.Parameters.AddWithValue("@val3", values(2))
Try
conn.Open()
cmd.ExecuteNonQuery()
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
conn.Close()
End Try
```
在上面的示例中,我们首先创建了一个SqlConnection对象,用于连接到数据库。然后,我们创建了一个SqlCommand对象,并设置了它的Connection属性为刚刚创建的SqlConnection对象。接着,我们设置了SqlCommand对象的CommandType属性为Text,以便使用SQL语句。然后,我们设置了SqlCommand对象的CommandText属性为要执行的SQL语句。
在这个例子中,我们假设要插入的数据有三列:column1、column2和column3。我们将数据存储在一个字符串数组中,名为values。
我们使用SqlCommand对象的Parameters集合来添加参数,并将它们的值设置为数组中的相应值。在这个例子中,我们使用AddWithValue方法来添加SqlParameter对象,并将参数名称和参数值作为它们的参数。
最后,我们打开数据库连接,执行SqlCommand对象的ExecuteNonQuery方法,它将执行SQL语句并返回受影响的行数。如果执行过程中发生错误,我们将在控制台输出错误消息。最后,我们关闭数据库连接。
pb execute immediate 执行SQL 怎么判断影响行数
可以使用 `SQL%ROWCOUNT` 来判断 `EXECUTE IMMEDIATE` 语句影响的行数。
例如:
```
declare
l_rowcount integer;
begin
execute immediate 'delete from my_table where id = 1'
into l_rowcount;
dbms_output.put_line('Deleted rows: ' || l_rowcount);
end;
```
在这个例子中,`l_rowcount` 变量会被赋值为 `DELETE` 语句删除的行数。
注意,如果执行的是非查询语句(例如 `INSERT`,`UPDATE` 或 `DELETE`),则 `SQL%ROWCOUNT` 返回的是被修改或删除的行数。如果执行的是查询语句,则 `SQL%ROWCOUNT` 返回的是查询返回的行数。
阅读全文