{"id":3756,"date":"2024-03-13T07:24:59","date_gmt":"2024-03-13T07:24:59","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/"},"modified":"2025-07-30T20:44:31","modified_gmt":"2025-07-30T20:44:31","slug":"how-are-transactions-handled-in-sql-server","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/","title":{"rendered":"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK"},"content":{"rendered":"<p>In SQL Server, you can use the BEGIN TRAN, COMMIT, and ROLLBACK statements to manage transactions. Here is a simple example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">BEGIN<\/span> TRAN\r\n\r\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> table1 (column1, column2) <span class=\"hljs-keyword\">VALUES<\/span> (value1, value2);\r\n\r\n<span class=\"hljs-keyword\">UPDATE<\/span> table2 <span class=\"hljs-keyword\">SET<\/span> column1 <span class=\"hljs-operator\">=<\/span> value1 <span class=\"hljs-keyword\">WHERE<\/span> column2 <span class=\"hljs-operator\">=<\/span> value2;\r\n\r\n<span class=\"hljs-keyword\">COMMIT<\/span>;\r\n<\/code><\/pre>\n<p>In the example above, BEGIN TRAN means starting a transaction, COMMIT means committing a transaction, and ROLLBACK means rolling back a transaction. If an error occurs during the transaction execution or if it is necessary to undo previous actions, the ROLLBACK statement can be used to roll back the transaction and restore the database to its state before the transaction began.<\/p>\n<p>Furthermore, SQL Server also supports the SAVEPOINT statement, which allows you to set a savepoint within a transaction to partially rollback during the transaction execution. For example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">BEGIN<\/span> TRAN\r\n\r\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> table1 (column1, column2) <span class=\"hljs-keyword\">VALUES<\/span> (value1, value2);\r\n\r\n<span class=\"hljs-keyword\">SAVEPOINT<\/span> save1;\r\n\r\n<span class=\"hljs-keyword\">UPDATE<\/span> table2 <span class=\"hljs-keyword\">SET<\/span> column1 <span class=\"hljs-operator\">=<\/span> value1 <span class=\"hljs-keyword\">WHERE<\/span> column2 <span class=\"hljs-operator\">=<\/span> value2;\r\n\r\n<span class=\"hljs-keyword\">ROLLBACK<\/span> <span class=\"hljs-keyword\">TO<\/span> save1;\r\n\r\n<span class=\"hljs-keyword\">COMMIT<\/span>;\r\n<\/code><\/pre>\n<p>In this example, SAVEPOINT save1 represents a checkpoint that can be used to rollback to after executing an UPDATE statement, without affecting data that was inserted before.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In SQL Server, you can use the BEGIN TRAN, COMMIT, and ROLLBACK statements to manage transactions. Here is a simple example: BEGIN TRAN INSERT INTO table1 (column1, column2) VALUES (value1, value2); UPDATE table2 SET column1 = value1 WHERE column2 = value2; COMMIT; In the example above, BEGIN TRAN means starting a transaction, COMMIT means committing [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[2526,2527,2136,306,2525],"class_list":["post-3756","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-begin-tran","tag-commit","tag-database-transactions","tag-rollback","tag-sql-server-transactions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server Transactions: BEGIN, COMMIT, ROLLBACK - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to handle transactions in SQL Server using BEGIN TRAN, COMMIT, and ROLLBACK statements with practical examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK\" \/>\n<meta property=\"og:description\" content=\"Learn how to handle transactions in SQL Server using BEGIN TRAN, COMMIT, and ROLLBACK statements with practical examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-13T07:24:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-30T20:44:31+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK\",\"datePublished\":\"2024-03-13T07:24:59+00:00\",\"dateModified\":\"2025-07-30T20:44:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\"},\"wordCount\":142,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"BEGIN TRAN\",\"COMMIT\",\"database transactions\",\"rollback\",\"SQL Server transactions\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\",\"name\":\"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-13T07:24:59+00:00\",\"dateModified\":\"2025-07-30T20:44:31+00:00\",\"description\":\"Learn how to handle transactions in SQL Server using BEGIN TRAN, COMMIT, and ROLLBACK statements with practical examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK - Blog - Silicon Cloud","description":"Learn how to handle transactions in SQL Server using BEGIN TRAN, COMMIT, and ROLLBACK statements with practical examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK","og_description":"Learn how to handle transactions in SQL Server using BEGIN TRAN, COMMIT, and ROLLBACK statements with practical examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-13T07:24:59+00:00","article_modified_time":"2025-07-30T20:44:31+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK","datePublished":"2024-03-13T07:24:59+00:00","dateModified":"2025-07-30T20:44:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/"},"wordCount":142,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["BEGIN TRAN","COMMIT","database transactions","rollback","SQL Server transactions"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/","url":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/","name":"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-13T07:24:59+00:00","dateModified":"2025-07-30T20:44:31+00:00","description":"Learn how to handle transactions in SQL Server using BEGIN TRAN, COMMIT, and ROLLBACK statements with practical examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-are-transactions-handled-in-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server Transactions: BEGIN, COMMIT, ROLLBACK"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/3756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=3756"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/3756\/revisions"}],"predecessor-version":[{"id":148422,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/3756\/revisions\/148422"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=3756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=3756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=3756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}