Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6668691
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T03:04:06+00:00 2026-05-26T03:04:06+00:00

I need to provide an auto update feature to my application. I am having

  • 0

I need to provide an auto update feature to my application.
I am having problem in applying the SQL updates. I have the updated SQL statement in my .sql file and what i want to achieve is that if one statment fails then entire script file must be rolled back
Ex.

create procedure [dbo].[test1]        
@P1 varchar(200),        
@C1 int        
as        
begin 
Select 1
end

GO

Insert into test (name) values ('vv')

Go

alter procedure [dbo].[test2]        
@P1 varchar(200),        
@C1 int        
as        
begin 
Select 1
end

GO

Now in the above example, if i get the error in third statement of “alter procedure [dbo].[test2]” then i want to rollback the first two changes also which is creating SP of “test1” and inserting data into “test” table

How should i approach this task? Any help will be much appreciated.

If you need any more info then let me know

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T03:04:07+00:00Added an answer on May 26, 2026 at 3:04 am

    Normally, you would want to add a BEGIN TRAN at the beginning, remove the GO statements, and then handle the ROLLBACK TRAN/COMMIT TRAN with a TRY..CATCH block.

    When dealing with DML though there are often statements that have to be at the start of a batch, so you can’t wrap them in a TRY..CATCH block. In that case you need to put together a system that knows how to roll itself back.

    A simple system would be just to backup the database at the start and restore it if anything fails (assuming that you are the only one accessing the database the whole time). Another method would be to log each batch that runs successfully and to have corresponding rollback scripts which you can run to put everything back should a later batch fail. This obviously requires much more work (writing an undo script for every script PLUS fully testing the rollbacks) and can also be a problem if people are still accessing the database while the upgrade is happening.

    EDIT:
    Here’s an example of a simple TRY..CATCH block with transaction handling:

    BEGIN TRY
    
    BEGIN TRANSACTION
    
    -- All of your code here, with `RAISERROR` used for any of your own error conditions
    
    COMMIT TRANSACTION
    
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION
    END CATCH
    

    However, the TRY..CATCH block cannot span batches (maybe that’s what I was thinking of when I said transactions couldn’t), so in your case it would probably be something more like:

    IF (OBJECT_ID('dbo.Error_Happened') IS NOT NULL)
        DROP TABLE dbo.Error_Happened
    GO
    
    BEGIN TRANSACTION
    
    <Some line of code>
    
    IF (@@ERROR <> 0)
        CREATE TABLE dbo.Error_Happened (my_id INT)
    
    IF (OBJECT_ID('dbo.Error_Happened') IS NOT NULL)
    BEGIN
        <Another line of code>
    
        IF (@@ERROR <> 0)
            CREATE TABLE dbo.Error_Happened (my_id INT)
    END
    
    ...
    
    IF (OBJECT_ID('dbo.Error_Happened) IS NOT NULL)
    BEGIN
        ROLLBACK TRANSACTION
        DROP TABLE dbo.Error_Happened
    END
    ELSE
        COMMIT TRANSACTION
    

    Unfortunately, because of the separate batches from the GO statements you can’t use GOTO, you can’t use the TRY..CATCH, and you can’t persist a variable across the batches. This is why I used the very kludgy trick of creating a table to indicate an error.

    A better way would be to simply have an error table and look for rows in it. Just keep in mind that your ROLLBACK will remove those rows at the end as well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need to provide email sending and receiving capabilities within my java web-application. Think
I have a few large forms that I need to provide visual cues about
I have a wcf web service and I need to provide the client with
I have Text( http://www.mywebsite.com ) in a view, in which i need to provide
I am still quite new to Codeigniter and have a noob problem I need
all i need is a very simple auto complete that suggests words that have
I need to provide a window on an ASP.NET MVC web page where registered
I need to provide our web developers an easy and quick way to test
I need to provide some passwords, API keys and similar sensitive data in my
Background: I need to provide a weekly report package for my sales staff. This

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.