/ / ADO.NET Транзакції та SQL Server 2008 Транзакції - sql, транзакції

Транзакція ADO.NET та транзакція SQL Server 2008 - SQL, транзакції

Якщо я запускаю збережену процедуру в ADO.NET з транзакціями дозволили і SP розпочати власну операцію всередині (з COMMIT TRANS). Що відбувається, коли транзакція відкату ADO.NET? Чи є транзакція з SP відкат також? Чи існує БД у стані, як це було до виклику ADO.NET?

Дякую.

Відповіді:

5 за відповідь № 1

Я тільки що перевірив це використання C # 2008, SQL Server 2005 використовуючи код, як показано нижче він відкотився.

SqlConnection con = new SqlConnection("server=svr;database=db;uid=user;pwd=pw;Connect Timeout=900");
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "MySp";
con.Open();
SqlTransaction trans = con.BeginTransaction();
cmd.Transaction = trans;
cmd.ExecuteNonQuery();
trans.Rollback();  // or trans.Commit()
con.Close();

Код бази даних

CREATE TABLE [dbo].[TEST](
[Val] [int] NULL
)

ALTER PROCEDURE MySp
AS
BEGIN
BEGIN TRANSACTION T1
INSERT INTO TEST SELECT 1
COMMIT TRANSACTION T1
END