【发布时间】:2010-06-19 10:08:58
【问题描述】:
我使用的是 SQL Server 2008 Enterprise。并使用 ADO.Net + C# + .Net 3.5 + ASP.Net 作为客户端访问数据库。当我访问 SQL Server 2008 表时,我总是从我的 C# + ADO.Net 代码中调用存储过程。
我的问题是,如果我的客户端 C# + ADO.Net 代码没有任何事务控制(我的意思是开始/结束事务),我也没有任何事务控制(我的意思是开始/结束事务)在 sql 存储过程代码中。那么我的问题是,每个单独的插入/删除/更新/选择语句都将充当单个事务吗?那是对的吗?例如,在下面的存储过程中,删除/插入/选择将充当 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
【问题讨论】:
标签: c# tsql sql-server-2008 ado.net transactions