{"id":98943,"date":"2025-02-25T00:43:34","date_gmt":"2025-02-24T21:13:34","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/some-random-sql-error-handling-techniques-for-reliability-and-transactional-integrity-14ei\/"},"modified":"2025-02-25T00:43:34","modified_gmt":"2025-02-24T21:13:34","slug":"some-random-sql-error-handling-techniques-for-reliability-and-transactional-integrity-14ei","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/some-random-sql-error-handling-techniques-for-reliability-and-transactional-integrity-14ei\/","title":{"rendered":"\u0628\u0631\u062e\u06cc \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062e\u0637\u0627\u06cc SQL \u062a\u0635\u0627\u062f\u0641\u06cc \u0628\u0631\u0627\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u0645\u0639\u0627\u0645\u0644\u0647"},"content":{"rendered":"<div data-article-id=\"2295979\" id=\"article-body\">\n<p>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f SQL \u0627\u0633\u062a. \u0686\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u060c \u0645\u062d\u0631\u06a9 \u0647\u0627 \u06cc\u0627 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u060c \u062d\u0641\u0638 \u0648 \u0642\u0627\u062f\u0631 \u0628\u0647 \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0645\u0648\u0642\u0639\u06cc\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0646\u0648\u0634\u062a\u0646 \u060c \u0645\u0646 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0627\u0633\u0627\u0633\u06cc \u0627\u0632 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc SQL \u0631\u0627 \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u0645 \u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f &#8230; \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0635\u06cc\u062f \u060c \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 SavePoint \u060c XACT_ABORT \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06af\u0634\u062a \u0631\u0648\u06cc\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u06af\u06cc \u060c \u0642\u0637\u0639\u0647 \u0647\u0627\u06cc \u06a9\u062f T-SQL \u062f\u0631 \u0627\u06cc\u0646 \u0646\u0648\u0634\u062a\u0646 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u0645\u0635\u0648\u0631 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0644\u0632\u0648\u0645\u0627\u064b \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647 \u0647\u0627\u06cc \u06a9\u062f \u0646\u0648\u06cc\u0633\u06cc \u0631\u0627 \u0645\u0646\u0639\u06a9\u0633 \u0646\u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>1. \u0627\u0635\u0648\u0644 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc SQL<\/strong><br \/><strong>\u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f &#8230; \u06af\u0631\u0641\u062a\u0646 \u0628\u0644\u0648\u06a9<\/strong><br \/>Try &#8230; Catch Block \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u0647\u0627 \u062f\u0631 SQL Server \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u0633\u062a\u062b\u0646\u0627\u0626\u0627\u062a \u0631\u0627 \u0636\u0628\u0637 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0646\u0627\u0633\u0628 \u067e\u0627\u0633\u062e \u062f\u0647\u06cc\u062f. \u0627\u06af\u0631 \u062e\u0637\u0627\u06cc\u06cc \u062f\u0631 \u062f\u0627\u062e\u0644 \u0628\u0644\u0648\u06a9 \u0627\u0645\u062a\u062d\u0627\u0646 \u0631\u062e \u062f\u0647\u062f \u060c Catch Block \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u060c \u062c\u0632\u0626\u06cc\u0627\u062a \u062e\u0637\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0639\u0628\u0627\u0631\u062a SELECT \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06af\u0631 \u0628\u0631\u0627\u06cc \u0645\u062a\u0648\u0642\u0641 \u06a9\u0631\u062f\u0646 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f \u060c \u0628\u0627\u06cc\u062f \u0628\u0647 \u062c\u0627\u06cc \u0622\u0646 \u060c \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u06cc\u06a9 \u0639\u0628\u0627\u0631\u062a SELECT \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>begin try\n  -- your main sql code here\n  -- your main sql code here\nend try\nbegin catch\n  select\n  error_message() as ErrorMessage,\n  error_number() as ErrorNumber,\n  error_severity() as ErrorSeverity,\n  error_state() as ErrorState\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u067e\u0631\u062a\u0627\u0628 \u0648 \u0627\u0641\u0632\u0627\u06cc\u0634<\/strong><br \/>RaiseError \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062e\u0637\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0627 \u0645\u06cc\u0632\u0627\u0646 \u0634\u062f\u062a \u0645\u0634\u062e\u0635 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0631\u062a\u0627\u0628 \u0628\u0631\u0627\u06cc \u067e\u0631\u062a\u0627\u0628 \u0645\u062c\u062f\u062f \u062e\u0637\u0627\u0647\u0627\u06cc \u0636\u0628\u0637 \u0634\u062f\u0647 \u0648 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0631\u062f\u0646 \u0627\u062c\u0631\u0627\u06cc \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0646\u06a9\u062a\u0647 \u0627\u06cc\u0646 \u06a9\u062f \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u0645\u0646\u0637\u0642 \u0634\u0631\u0637\u06cc \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u062e\u0637\u0627\u06cc\u06cc \u062f\u0631 SQL Server \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Raiserror \u0628\u0627 Try &#8230; Catch Error Handling \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>-- example of conditional logic before raising an error\ndeclare @somecondition int = 1 -- this will cause the error to be thrown\n\nbegin try\n  -- conditionally raise an error\n  if @somecondition = 1 -- if @somecondition &lt;&gt; 1 then error would not be thrown\n  begin\n    raiserror('my custom error occurred due to some condition.', 16, 1) -- raise error\n  end\n\n  -- your main sql code here\n  select 'hello there'\n  select 'no error occurred'\nend try\nbegin catch\n  -- capture the error and re-throw it\n  throw  -- re-throw the error\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><u>\u0634\u06a9\u0633\u062a\u0646 \u0645\u0641\u0647\u0648\u0645 &#8220;Rethrow&#8221;<\/u><\/p>\n<ol>\n<li>\u062e\u0637\u0627\u06cc\u06cc \u062f\u0631 \u0628\u0644\u0648\u06a9 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0631\u062e \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<li>\u0627\u06af\u0631 someCondition = 1 \u060c \u0639\u0628\u0627\u0631\u062a \u067e\u0631\u062a\u0627\u0628 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0627\u0645\u062a\u062d\u0627\u0646 \u062e\u0637\u0627\u06cc\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0627\u0639\u062f\u0627\u0645 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0628\u0647 \u0628\u0644\u0648\u06a9 \u0635\u06cc\u062f \u067e\u0631\u0634 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0628\u0644\u0648\u06a9 Catch \u062e\u0637\u0627 \u0631\u0627 \u0636\u0628\u0637 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>SQL Server \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u062e\u0637\u0627 (error_message () \u060c error_number () \u0648 \u063a\u06cc\u0631\u0647) \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0641\u0642\u0637 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u062f\u0631 \u06af\u0631\u0641\u062a\u0646 \u060c \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u062c\u0631\u0627\u06cc \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u0646\u0645\u06cc \u06a9\u0646\u062f \u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0644\u0632\u0648\u0645 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u067e\u0631\u0648\u0631\u0634 \u0645\u062c\u062f\u062f \u062f\u0627\u0631\u062f.<\/li>\n<li>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Throw In Catch (\u067e\u0631\u062a\u0627\u0628 \u0645\u062c\u062f\u062f \u062e\u0637\u0627)<\/li>\n<li>\u0628\u0647 \u062c\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u062e\u0637\u0627\u06cc \u06cc\u0627 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0622\u0646 \u0633\u06a9\u0648\u062a \u060c \u067e\u0631\u062a\u0627\u0628 \u062f\u0648\u0628\u0627\u0631\u0647 \u0647\u0645\u0627\u0646 \u062e\u0637\u0627 \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<li>\u0627\u06cc\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u062e\u0637\u0627 \u0628\u0647 \u062a\u0645\u0627\u0633 \u06af\u06cc\u0631\u0646\u062f\u0647 \u067e\u062e\u0634 \u0634\u0648\u062f (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u06cc\u06a9 \u0631\u0648\u0634 \u06cc\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u06cc\u06af\u0631).<\/li>\n<li>\u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0639\u0628\u0648\u0631 \u062c\u0632\u0626\u06cc\u0627\u062a \u062e\u0637\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0646\u06cc\u0633\u062a \u0632\u06cc\u0631\u0627 SQL Server \u0645\u062a\u0646 \u062e\u0637\u0627 \u0631\u0627 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u06cc \u0622\u0648\u0631\u062f.<\/li>\n<\/ol>\n<p><u>\u0686\u0631\u0627 &#8220;\u062f\u0648\u0628\u0627\u0631\u0647 \u067e\u0631\u062a\u0627\u0628&#8221; \u0628\u0647 \u062c\u0627\u06cc \u0641\u0642\u0637 &#8220;\u067e\u0631\u062a\u0627\u0628&#8221;\u061f<\/u><\/p>\n<ul>\n<li>\u0627\u0635\u0637\u0644\u0627\u062d &#8220;\u067e\u0631\u062a\u0627\u0628&#8221; \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0628\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u06a9 \u062e\u0637\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.<\/li>\n<li>\u0627\u0635\u0637\u0644\u0627\u062d &#8220;Rethrow&#8221; \u0647\u0646\u06af\u0627\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u06cc\u06a9 \u062e\u0637\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0622\u0646 \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><u>\u0686\u0647 \u0645\u0648\u0642\u0639 \u0627\u0632 Rethrow \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u061f<\/u><\/p>\n<ul>\n<li>\u0648\u0642\u062a\u06cc \u0646\u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062e\u0637\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n<li>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062e\u0637\u0627\u06cc \u067e\u0634\u062a\u0647 \u062a\u0645\u0627\u0633 \u0631\u0627 \u067e\u062e\u0634 \u06a9\u0646\u062f \u060c \u0627\u0646\u06af\u0627\u0631 \u06a9\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 &#8230; \u06af\u0631\u0641\u062a\u0646 \u062f\u0631 \u0622\u0646\u062c\u0627 \u0646\u0628\u0648\u062f.<\/li>\n<li>\u0647\u0646\u06af\u0627\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u0647\u0627 \u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062a\u0648 \u062f\u0631 \u062a\u0648 \u06cc\u0627 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0645\u0639\u0627\u0645\u0644\u0647.<\/li>\n<\/ul>\n<p><strong>\u0646\u0633\u062e\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0627\u0632 \u06a9\u062f SQL \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u062a\u0627\u0628 \u0641\u0642\u0637 \u0628\u062f\u0648\u0646 Raiserror<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>declare @somecondition int = 1 -- this will cause the error to be thrown\n\nbegin try\n  -- conditionally throw an error\n  if @somecondition = 1 -- if @somecondition &lt;&gt; 1 then the error would not be thrown\n  begin\n    throw 50001, 'my custom error occurred due to some condition.', 1\n  end\n\n  -- your main sql code here\n  select 'hello there'\n  select 'no error occurred'\nend try\nbegin catch\n  -- capture the error and re-throw it\n  throw  -- re-throw the error\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><u>\u062a\u0641\u0627\u0648\u062a \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0628\u06cc\u0646 \u067e\u0631\u062a\u0627\u0628 \u0648 Raiserror<\/u><\/p>\n<ol>\n<li>\u0646\u062d\u0648 \u0633\u0627\u062f\u0647 \u062a\u0631:<\/li>\n<li>\u067e\u0631\u062a\u0627\u0628 50001 \u060c &#8220;\u062e\u0637\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0646 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0628\u0631\u062e\u06cc \u0634\u0631\u0627\u06cc\u0637 \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a.&#8221; \u060c 1<\/li>\n<li>\u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0646 \u0634\u062f\u062a (16) \u0645\u0627\u0646\u0646\u062f Raiserror \u0646\u06cc\u0633\u062a.<\/li>\n<li>\u067e\u0631\u062a\u0627\u0628 \u062f\u0627\u062e\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u062c\u062f\u062f \u062e\u0637\u0627\u0647\u0627\u06cc:<\/li>\n<li>\u067e\u0631\u062a\u0627\u0628 \u062f\u0627\u062e\u0644 \u06af\u0631\u0641\u062a\u0646 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062e\u0637\u0627\u06cc \u06af\u0631\u0641\u062a\u0627\u0631 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u067e\u0631\u062a\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>Raiserror \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06af\u0631\u0641\u062a\u0646 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0642\u06cc\u0627\u0645 \u0645\u062c\u062f\u062f \u062e\u0637\u0627\u06cc \u0627\u0635\u0644\u06cc \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u062f\u0627\u0631\u062f.<\/li>\n<li>\u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 \u0634\u062f\u062a 16+ \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/li>\n<li>\u0628\u0627 \u067e\u0631\u062a\u0627\u0628 \u060c \u0634\u062f\u062a \u0628\u0627\u06cc\u062f 50000 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 \u0628\u0627\u0634\u062f \u06a9\u0647 \u062f\u0627\u0645\u0646\u0647 \u062e\u0637\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0631\u0627\u06cc SQL Server \u0627\u0633\u062a.<\/li>\n<li>Raiserror \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0645\u06cc\u0632\u0627\u0646 \u0634\u062f\u062a \u06a9\u0645\u062a\u0631\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<p><u>\u0686\u0647 \u0645\u0648\u0642\u0639 \u0627\u0632 \u067e\u0631\u062a\u0627\u0628 \u0628\u0647 \u062c\u0627\u06cc Raiserror \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u061f<\/u><\/p>\n<ul>\n<li>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0647 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc \u0633\u0627\u062f\u0647 \u062a\u0631 \u0648 \u062a\u0645\u06cc\u0632 \u062a\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f.<\/li>\n<li>\u0648\u0642\u062a\u06cc \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0646\u062f\u0627\u0631\u06cc\u062f. Raiserror \u0627\u0632 \u062a\u0639\u0648\u06cc\u0636 \u067e\u06cc\u0627\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc Try &#8230; Catch \u060c \u067e\u0631\u062a\u0627\u0628 \u0631\u0648\u0634 \u0627\u0631\u062c\u062d \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062b\u0646\u0627\u0626\u0627\u062a \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p><strong>2. \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0648 \u0627\u062a\u0645\u06cc<\/strong><br \/><strong>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Try &#8230; \u06af\u0631\u0641\u062a\u0646 \u0628\u0627 \u0645\u0639\u0627\u0645\u0644\u0627\u062a<\/strong><br \/>\u0645\u0639\u0627\u0645\u0644\u0627\u062a \u062f\u0631 \u0633\u0631\u0648\u0631 SQL \u060c \u0627\u062a\u0645\u06cc \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a \u062f\u0631 \u06cc\u06a9 \u0645\u0639\u0627\u0645\u0644\u0647 \u06cc\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0645\u0648\u0641\u0642 \u0645\u06cc \u0634\u0648\u0646\u062f \u06cc\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0634\u06a9\u0633\u062a \u0645\u06cc \u062e\u0648\u0631\u0646\u062f. \u062f\u0631 \u0635\u0648\u0631\u062a \u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u0647\u0631 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u060c \u0633\u06cc\u0633\u062a\u0645 \u0628\u0647 \u062d\u0627\u0644\u062a \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u0628\u0627\u0632 \u0645\u06cc \u06af\u0631\u062f\u062f \u060c \u0627\u0632 \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0628\u06cc\u0627\u0646\u06cc\u0647 SQL \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u06a9\u0627\u0645\u0644 \u0634\u0648\u0646\u062f \u06cc\u0627 \u0627\u0635\u0644\u0627\u064b \u0627\u062c\u0631\u0627 \u0646\u0634\u0648\u0646\u062f \u060c \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0642\u0648\u0627\u0645 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.<\/p>\n<p><u>\u0645\u0639\u0627\u0645\u0644\u0647 \u0627\u0633\u0627\u0633\u06cc \u0628\u0627 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627<\/u><br \/>\u0627\u06cc\u0646 \u06a9\u062f \u0646\u0645\u0648\u0646\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0645\u0639\u0627\u0645\u0644\u0647 \u0627\u0632 \u0627\u062a\u0645\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0627\u06af\u0631 \u06cc\u06a9 \u0634\u0631\u0637 \u062e\u0627\u0635 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0634\u0648\u062f \u060c \u062e\u0637\u0627\u06cc\u06cc \u067e\u0631\u062a\u0627\u0628 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0645\u0639\u0627\u0645\u0644\u0647 \u0628\u0647 \u0639\u0642\u0628 \u0628\u0631\u06af\u0631\u062f\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>declare @somecondition int = 1 -- this will cause the error to be thrown\n\nbegin transaction\nbegin try\n  if @somecondition = 1 -- if @somecondition &lt;&gt; 1 then the error would not be thrown\n  begin\n    throw 50001, 'my custom error occurred due to some condition.', 1\n  end\n\n  -- sql operations (insert, update, delete, etc.)\n  commit transaction\nend try\nbegin catch\n  rollback transaction\n  throw  -- re-throw the error\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0647\u0631 \u062c\u0645\u0644\u0647 SQL \u062f\u0631 \u062f\u0627\u062e\u0644 \u0628\u0644\u0648\u06a9 \u0627\u0645\u062a\u062d\u0627\u0646 \u0634\u06a9\u0633\u062a \u0628\u062e\u0648\u0631\u062f \u060c SQL Server \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0628\u0647 \u0628\u0644\u0648\u06a9 Catch \u0645\u06cc \u0631\u0648\u062f. \u0628\u0644\u0648\u06a9 Catch \u0645\u0639\u0627\u0645\u0644\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0642\u0628 \u0645\u06cc \u0627\u0646\u062f\u0627\u0632\u062f \u0648 \u0647\u0631\u06af\u0648\u0646\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0632 \u0632\u0645\u0627\u0646 \u0645\u0639\u0627\u0645\u0644\u0647 \u0631\u0627 \u062e\u0646\u062b\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0637\u0631\u06cc\u0642 \u0627\u0632 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><u>\u062e\u0637\u0627\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0631 \u0645\u0639\u0627\u0645\u0644\u0627\u062a<\/u><br \/>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0648\u0631\u0648\u062f \u0628\u0647 \u062e\u0637\u0627 \u0628\u0647 \u0628\u0644\u0648\u06a9 Catch \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0631\u062f\u06cc\u0627\u0628\u06cc \u062e\u0631\u0627\u0628\u06cc \u0648 \u062a\u0634\u062e\u06cc\u0635 \u0645\u0648\u062b\u0631 \u0645\u0634\u06a9\u0644\u0627\u062a \u06a9\u0645\u06a9 \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>begin transaction\nbegin try\n  -- some sql operations (insert, update, delete, etc.)\n  commit transaction\nend try\nbegin catch\n    rollback transaction\n\n    -- log error details to a custom audit table\n    insert into errorlog (errormessage, errorprocedure, errorline, errortime)\n    values (ERROR_MESSAGE(), ERROR_PROCEDURE(), ERROR_LINE(), GETDATE())\n\n    select ERROR_MESSAGE() as errormessage\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0628\u0631\u0627\u06cc \u0627\u062a\u0645\u06cc \u0648 \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062c\u0627\u0645 \u0686\u0646\u062f\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0627\u0628\u0633\u062a\u0647 SQL \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a. Rollback \u0628\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0635\u0648\u0631\u062a \u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u060c \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0644\u0648\u06a9 Catch\u2026 \u0627\u0645\u06a9\u0627\u0646 \u062e\u0637\u0627\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u062f\u0631 \u06a9\u0644\u06cc\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0627 SQL \u062f\u0631 \u062a\u0639\u0627\u0645\u0644 \u0647\u0633\u062a\u0646\u062f \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u060c \u0645\u0647\u0645 \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0627\u0632 \u0627\u062a\u0645\u06cc \u0628\u0648\u062f\u0646 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062c\u0627\u0645 \u0686\u0646\u062f\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0627\u0628\u0633\u062a\u0647 SQL \u060c \u0647\u0645\u0647 \u0622\u0646\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0647\u0645 \u0645\u0648\u0641\u0642 \u0634\u0648\u0646\u062f \u06cc\u0627 \u0628\u0627 \u0647\u0645 \u0634\u06a9\u0633\u062a \u0628\u062e\u0648\u0631\u0646\u062f. Rollback \u0628\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0635\u0648\u0631\u062a \u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u060c \u0642\u0648\u0627\u0645 \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u0648\u0631\u0648\u062f \u0628\u0647 \u062e\u0637\u0627 \u0648 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u060c \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f. \u062e\u0637\u0627\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u060c \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0628\u0647\u062a\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u0639\u0627\u0645\u0644\u0627\u062a \u062f\u0631 \u0647\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc SQL \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u062f\u0627\u062f\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u060c \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a \u060c \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062d\u062a\u06cc \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u062e\u0631\u0627\u0628\u06cc \u0647\u0627 \u0647\u0645\u0627\u0647\u0646\u06af \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u062f.<\/p>\n<p><strong>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 SavePoint \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u062c\u0632\u0626\u06cc<\/strong><br \/>SavePoint \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062f\u06cc\u06af\u0631\u0627\u0646 \u0631\u0627 \u062f\u0633\u062a \u0646\u062e\u0648\u0631\u062f\u0647 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u060c \u0628\u062e\u0634 \u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u0645\u0639\u0627\u0645\u0644\u0647 \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f. \u062f\u0631 SQL Server \u060c SavePoint \u0628\u0627 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a\u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0642\u06cc\u0642 \u062a\u0631 \u0628\u0631 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631 \u062e\u0644\u0627\u0641 \u06cc\u06a9 \u0645\u0639\u0627\u0645\u0644\u0647 \u06a9\u0627\u0645\u0644 \u0628\u0631\u06af\u0634\u062a \u060c \u06a9\u0647 \u0627\u0632 \u0632\u0645\u0627\u0646 \u0645\u0639\u0627\u0645\u0644\u0647 \u0647\u0645\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u062e\u0646\u062b\u06cc \u0645\u06cc \u06a9\u0646\u062f \u060c SavePoint \u0627\u0645\u06a9\u0627\u0646 \u0628\u0627\u0632\u06af\u0634\u062a \u062a\u0646\u0647\u0627 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0645\u0639\u0627\u0645\u0644\u0647 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0628\u0642\u06cc\u0647 \u0631\u0627 \u062f\u0633\u062a \u0646\u062e\u0648\u0631\u062f\u0647 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062c\u0627\u0645 \u0686\u0646\u062f\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u062e\u0637\u0627 \u0641\u0642\u0637 \u0642\u0633\u0645\u062a\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0628\u0627\u06cc\u062f \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0631\u0648\u0646\u062f.<\/p>\n<p>SavePoint \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062d\u0641\u0638 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u0648\u0641\u0642 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06af\u0631 \u062e\u0637\u0627\u06cc\u06cc \u0631\u062e \u062f\u0647\u062f \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u062c\u0627\u06cc \u062f\u0648\u0631 \u0627\u0646\u062f\u0627\u062e\u062a\u0646 \u06a9\u0644 \u0645\u0639\u0627\u0645\u0644\u0647 \u060c \u0628\u0647 \u0622\u062e\u0631\u06cc\u0646 SavePoint \u0628\u0631\u06af\u0631\u062f\u06cc\u062f. \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0631\u0627\u0628\u06cc \u062f\u0631 \u06cc\u06a9 \u0645\u0639\u0627\u0645\u0644\u0647 \u0628\u0632\u0631\u06af \u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0642\u06cc\u0642 \u062a\u0631\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0628\u0631\u062e\u0648\u0631\u062f \u0628\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0627\u0628\u0633\u062a\u0647 \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u062e\u0627\u0635\u06cc \u0628\u0627\u06cc\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f \u062d\u062a\u06cc \u0627\u06af\u0631 \u06cc\u06a9 \u0642\u062f\u0645 \u0628\u0639\u062f\u06cc \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0631\u0648\u062f \u0648 \u0628\u0647 \u0639\u0642\u0628 \u0628\u0631\u06af\u0631\u062f\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>begin transaction\nbegin try\n  -- insert new record into the orders table\n  insert into orders (orderid, customername, orderdate)\n  values (101, 'John Doe', getdate())\n\n  -- define savepoint before inserting a new\n  -- record into the orderdetails table\n  save transaction OrderDetailsSavepoint\n\n  -- insert new record into the orderdetails table\n  insert into orderdetails (orderid, productid, quantity)\n  values (101, 1, 5)\n\n  -- simulate an error\n  throw 50001, 'simulated error occurred after OrderDetails insertion.', 1\n\n  commit transaction\nend try\nbegin catch\n  select 'error. rolling back to OrderDetailsSavepoint savepoint.'\n\n  -- rollback only the changes made after the savepoint\n  rollback transaction OrderDetailsSavepoint\n\n  select 'continuing with remaining transaction...'\n\n  -- you can still commit other successful operations\n  commit transaction\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u06cc\u06a9 \u0645\u0639\u0627\u0645\u0644\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0628\u0647 \u0639\u0642\u0628 \u0628\u0631\u06af\u0631\u062f\u062f (\u0645\u0639\u0627\u0645\u0644\u0647 \u06a9\u0627\u0645\u0644 \u0628\u0631\u06af\u0634\u062a) \u060c \u062a\u0645\u0627\u0645 \u0646\u0642\u0627\u0637 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u0631 \u0622\u0646 \u0646\u06cc\u0632 \u062f\u0648\u0631 \u0631\u06cc\u062e\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 SavePoint \u0642\u0641\u0644 \u0647\u0627 \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0645\u0639\u0627\u0645\u0644\u0647 \u06a9\u0627\u0645\u0644 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f \u06cc\u0627 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0686\u0631\u062e\u0627\u0646\u062f\u0647 \u0646\u0634\u0648\u062f \u060c \u0642\u0641\u0644 \u0631\u0627 \u0622\u0632\u0627\u062f \u0646\u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 XACT_ABORT \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0648\u062f\u06a9\u0627\u0631<\/strong><br \/>XACT_ABORT \u06cc\u06a9 \u062a\u0646\u0638\u06cc\u0645 \u0633\u0637\u062d \u062c\u0644\u0633\u0647 (\u06a9\u0644 \u0645\u0639\u0627\u0645\u0644\u0647) \u062f\u0631 SQL Server \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u062e\u0637\u0627\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u060c \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0644 \u0645\u0639\u0627\u0645\u0644\u0647 \u0631\u0627 \u0628\u0627\u0632 \u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc \u0635\u0631\u06cc\u062d \u0628\u0627 \u0645\u0639\u0627\u0645\u0644\u0647 \u0628\u0631\u06af\u0634\u062a \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u06a9\u062f \u06a9\u0645\u06a9 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u062f\u0631\u062c \u0647\u0627\u06cc \u0641\u0644\u0647 \u060c \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u0641\u0644\u0647 \u0648 \u0633\u0627\u06cc\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a &#8220;\u062f\u0633\u062a\u0647 \u0627\u06cc&#8221; \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u0632\u06cc\u0631\u0627 \u0627\u0632 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u062f\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u062f\u0633\u062a\u0647 \u0627\u06cc \u0628\u0632\u0631\u06af \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>XACT_ABORT \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u06a9\u0627\u0645\u0644 \u062f\u0631 \u0645\u0648\u0631\u062f \u0634\u06a9\u0633\u062a \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0635\u0648\u0631\u062a \u0639\u062f\u0645 \u0627\u0646\u062c\u0627\u0645 \u0647\u0631\u06af\u0648\u0646\u0647 \u0628\u06cc\u0627\u0646\u06cc\u0647 \u062f\u0631 \u06cc\u06a9 \u0645\u0639\u0627\u0645\u0644\u0647 \u060c \u06a9\u0644 \u0645\u0639\u0627\u0645\u0644\u0647 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u0639\u0642\u0628 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0635\u0631\u06cc\u062d \u0648 \u0635\u06cc\u062f \u0635\u06cc\u062f \u0648 \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0628\u0627 \u0647\u0631 \u0645\u0639\u0627\u0645\u0644\u0647 \u0646\u062f\u0627\u0631\u06cc\u062f (\u06a9\u0627\u0647\u0634 \u062e\u0637\u0627\u06cc \u062f\u0633\u062a\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f).<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>set xact_abort on -- turn it on\n-- do not need to turn off xact_abort\n-- because it applies to the current session or batch\n-- after the session ends or a new connection is made\n-- xact_abort resets to its default state (off).\n\nbegin transaction\nbegin try\n  -- insert new record into the orders table\n  insert into orders (orderid, customername, orderdate)\n  values (102, 'Jane Doe', getdate())\n\n  -- simulate an error\n    insert into orderdetails (orderid, productid, quantity)\n    values (102, NULL, 5)  -- NULL is not allowed for ProductID\n\n    commit transaction  -- this will not run if an error occurs\nend try\nbegin catch\n    select 'error. xact_abort automatically rolled back the transaction.'\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>3. \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0637\u0627 \u0648 \u06af\u0632\u0627\u0631\u0634<\/strong><br \/><strong>\u062e\u0637\u0627\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u06cc\u06a9 \u062c\u062f\u0648\u0644<\/strong><br \/>\u0630\u062e\u06cc\u0631\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u062e\u0637\u0627 \u062f\u0631 \u062c\u062f\u0648\u0644 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0647 \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc \u0648 \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>begin catch\n  insert into errorlog (errormessage, errornumber, errorseverity, errorstate)\n  values (ERROR_MESSAGE(), ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE())\nend catch\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0647\u062a\u0631 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0648 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u0627\u06cc\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627\u0646\u0646\u062f Session_User \u060c App_Name () \u060c Host_name () \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u062f \u062a\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u062a\u0627 \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0622\u0633\u0627\u0646\u062a\u0631 \u0634\u0648\u062f \u0648 \u0632\u0645\u06cc\u0646\u0647 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u062f. \u0627\u06af\u0631 \u062e\u0637\u0627 \u062f\u0631 \u06cc\u06a9 \u0631\u0648\u0634 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u0631\u062e \u062f\u0647\u062f \u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 Error_procedure () \u0648 error_line () \u0628\u0631\u0627\u06cc \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u062e\u0648\u0628 \u0646\u06cc\u0632 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<p><u>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u0628\u0631\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u062e\u0637\u0627<\/u><br \/>\u0631\u0648\u0634\u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062e\u0637\u0627 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062e\u0631\u0648\u062c\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>drop procedure if exists dbo.MyProcedure\ngo\n\ncreate procedure dbo.MyProcedure @ErrorMessage nvarchar(4000) output\nas\nbegin\n  begin try\n    -- sql logic\n  end try\n  begin catch\n    set @errormessage = error_message() -- return the error message to the calling code\n  end catch\nend\ngo\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u067e\u0627\u06cc\u0627\u0646<\/strong><br \/>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062e\u0637\u0627\u06cc SQL \u060c \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u062d\u0641\u0638 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Try &#8230; Catch \u060c Management Transaction \u0648 \u0648\u0631\u0648\u062f \u0628\u0647 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0628\u0647\u0628\u0648\u062f \u0645\u0642\u0627\u0648\u0645\u062a \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u060c \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0647 \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f SQL \u0627\u0633\u062a. \u0686\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u060c \u0645\u062d\u0631\u06a9 \u0647\u0627 \u06cc\u0627 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u060c \u062d\u0641\u0638 \u0648 \u0642\u0627\u062f\u0631 \u0628\u0647 \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0645\u0648\u0642\u0639\u06cc\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0646\u0648\u0634\u062a\u0646 \u060c \u0645\u0646 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":98944,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-98943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/98943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=98943"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/98943\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/98944"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=98943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=98943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=98943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}