1
트랜잭션을 사용할 수있는 ADO.NET에서 저장 프로 시저를 실행하면 SP는 내부 트랜잭션 (COMMIT TRANS)을 시작합니다. ADO.NET 롤백 트랜잭션은 어떻게됩니까? SP의 트랜잭션도 롤백됩니까? ADO.NET을 호출하기 전의 상태로 DB가 있습니까?ADO.NET 트랜잭션 및 SQL Server 2008 트랜잭션
감사합니다.
트랜잭션을 사용할 수있는 ADO.NET에서 저장 프로 시저를 실행하면 SP는 내부 트랜잭션 (COMMIT TRANS)을 시작합니다. ADO.NET 롤백 트랜잭션은 어떻게됩니까? SP의 트랜잭션도 롤백됩니까? ADO.NET을 호출하기 전의 상태로 DB가 있습니까?ADO.NET 트랜잭션 및 SQL Server 2008 트랜잭션
감사합니다.
난 그냥 다음과 같이 코드를 사용하여이 사용 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
+1. 그럴 수 밖에 없었습니다. 그러나 실제로 그것을하는 +1! –
나는 벤 추리를하고 싶었다. 그리고 나서 그것을 망쳐 놓고 생각했다. 실제 X-를 보자.) –