/ / ADO.NET Transaction et SQL Server 2008 Transaction - SQL, Transactions

ADO.NET Transaction et SQL Server 2008 Transaction - sql, transactions

Si j'exécute une procédure stockée dans ADO.NET avec transaction activée et SP commence sa propre transaction à l'intérieur (avec COMMIT TRANS). Que se passe-t-il lors d'une transaction de restauration ADO.NET? La transaction du SP est-elle également annulée? La base de données est-elle dans l'état où elle était avant d'appeler ADO.NET?

Je vous remercie.

Réponses:

5 pour la réponse № 1

Je viens de tester cela en utilisant C # 2008, Sql Server 2005 en utilisant le code comme ci-dessous et il a fait reculer.

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();

Code de la base de données

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

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