Sdílet prostřednictvím


Transakce (Transact-SQL)

Platí na:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSklad v Microsoft FabricSQL databáze v Microsoft Fabric

Transakce je jedna jednotka práce. Pokud je transakce úspěšná, všechny změny dat provedené během transakce jsou potvrzeny a stanou se trvalou součástí databáze. Pokud transakce narazí na chyby a musí být zrušena nebo vrácena zpět, všechny úpravy dat se vymažou.

SQL Server funguje v následujících režimech transakcí:

Režim transakcí Description
Automatické transakce Každý jednotlivý příkaz je transakce.
Explicitní transakce Každá transakce je explicitně spuštěna s BEGIN TRANSACTION příkazem a explicitně skončila příkazem COMMIT nebo ROLLBACK příkazem.
Implicitní transakce Nová transakce je implicitně spuštěna po dokončení předchozí transakce, ale každá transakce je explicitně dokončena pomocí COMMIT příkazu nebo příkazu ROLLBACK .
Transakce v rozsahu dávky Platí pouze pro více aktivních sad výsledků (MARS), Transact-SQL explicitní nebo implicitní transakce, která začíná v relaci MARS, se stane oborově omezenou transakcí. Transakce s oborem dávky, která není potvrzena nebo vrácena zpět, když se dávka dokončí, se sql Server automaticky vrátí zpět.

Zvláštní aspekty související s produkty datového skladu najdete v tématu Transakce v datovém skladu infrastruktury nebo transakcích (Azure Synapse Analytics).

Syntaxe řízení transakcí

Databázový stroj SQL poskytuje následující příkazy transakcí:

  • IMPLICIT_TRANSACTIONS SET (Transact-SQL)
  • @@TRANCOUNT (Transact-SQL)