l33*_*33t 5 sql-server transactions
事务可以在SQL Server客户端或服务器代码中执行。一位数据库专家曾经告诉我,由于锁定问题,应该避免客户端事务。现在,几年后,我想知道这是否仍然成立。
当然,在某些情况下客户端事务是必要的,但我们假设可以使用客户端或服务器端事务来解决特定问题。
就性能而言,这两种技术哪一种最好?为什么?
C#(客户端):
using (var transaction = new TransactionScope())
{
// Insert data into database.
transaction.Complete();
}
Run Code Online (Sandbox Code Playgroud)
T-SQL(服务器):
CREATE PROCEDURE [dbo].[my_proc]
AS
BEGIN
SET NOCOUNT ON
DECLARE @TransactionCount [int]
BEGIN TRY
SET @TransactionCount = @@TRANCOUNT
IF @TransactionCount = 0
BEGIN TRANSACTION
-- Insert data
IF @TransactionCount = 0
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF XACT_STATE() <> 0 AND @TransactionCount = 0
ROLLBACK TRANSACTION
; THROW
END CATCH
END
GO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2942 次 |
| 最近记录: |