gpt4 book ai didi

c# - SQL Server 2008 中的事务问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:21 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2008 Enterprise。并使用 ADO.Net + C# + .Net 3.5 + ASP.Net 作为客户端访问数据库。当我访问 SQL Server 2008 表时,我总是从我的 C# + ADO.Net 代码调用存储过程。

我的问题是,如果我的客户端 C# + ADO.Net 代码没有任何事务控制(我的意思是开始/结束事务),而且我也没有任何事务控制(我的意思是开始/结束事务)在sql存储过程代码中。那么我的问题是,每个 Insert/Delete/Update/Select 语句都将充当单个事务?那是对的吗?比如下面的store过程中,delete/insert/select会作为3个单事务?

create PROCEDURE [dbo].[FooProc]    
(
@Param1 int
,@Param2 int
,@Param3 int
)
AS

DELETE FooTable WHERE Param1 = @Param1

INSERT INTO FooTable
(
Param1
,Param2
,Param3
)
VALUES
(
@Param1
,@Param2
,@Param3
)

DECLARE @ID bigint
SET @ID = ISNULL(@@Identity,-1)
IF @ID > 0
BEGIN
SELECT IdentityStr FROM FooTable WHERE ID = @ID
END

最佳答案

Then my question is, each single Insert/Delete/Update/Select statement will act as a single transaction?

是的,没有明确的事务控制,每条SQL语句都会被包裹在自己的事务中。单个语句保证作为一个整体执行或作为一个整体失败。

单个语句将在当前 transaction isolation level 下运行: 通常 read committed。因此它不会从其他语句中读取未提交的更改,但它可能会遭受不可重复读取或幻像值的困扰。

关于c# - SQL Server 2008 中的事务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3075110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com