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

  • SEARCH
  • Home
  • 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 771377
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T18:38:39+00:00 2026-05-14T18:38:39+00:00

I have a simple situation. A large organisation is using several different versions of

  • 0

I have a simple situation. A large organisation is using several different versions of some (desktop) application and each version has it’s own database structure. There are about 200 offices and each office will have it’s own version, which can be one of 7 different ones. The company wants to upgrade all applications to the latest versions, which will be version 8.

The problem is that they don’t have a separate database for each version. Nor do they have a separate database for each office. They have one single database which is handled by a dedicated server, thus keeping things like management and backups easier. Every office has it’s own database schema and within the schema there’s the whole database structure for their specific application version. As a result, I’m dealing with 200 different schema’s which need to be upgraded, each with 7 possible versions. Fortunately, every schema knows the proper version so checking the version isn’t difficult.

But my problem is that I need to create upgrade scripts which can upgrade from version 1 to version 2 to version 3 to etc… Basically, all schema’s need to be bumped up one version until they’re all version 8. Writing the code that will do this is no problem. the challenge is how to create the upgrade script from one version to the other? Preferably with some automated tool. I’ve examined RedGate’s SQL Compare and Altova’s DatabaseSpy but they’re not practical. Altova is way too slow. RedGate requires too much processing afterwards, since the generated SQL Script still has a few errors and it refers to the schema name. Furthermore, the code needs to become part of a stored procedure and the code generated by RedGate doesn’t really fit inside a single procedure. (Plus, it’s doing too much transaction-handling, while I need everything within a single transaction.


I have been considering using another SQL Comparison tool but it seems to me that my case is just too different from what standard tools can deliver. So I’m going to write my own comparison tool. To do this, I’ll be using ADOX with Delphi to read the catalogues for every schema version in the database, then use this to write the SQL Statements that will need to upgrade these schema’s to their next version. (Comparing 1 with 2, 2 with 3, 3 with 4, etc.) I’m not unfamiliar with generating SQL-Script-Generators so I don’t expect too many problems. And I’ll only be upgrading the table structures, not any of the other database objects.

So, does anyone have some good tips and tricks to apply when doing this kind of comparisons? Things to be aware of? Practical tips to increase speed?

  • 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-14T18:38:40+00:00Added an answer on May 14, 2026 at 6:38 pm

    I still think RedGate is the way to go. It is true that it does not always catch all the dependencies, and you may need to hack on it a bit, but it gets you 95% of the way there, and would be a huge timesaver IMO.

    Once you have the script generated, you can easily hack on the way error handling and transactions are done, the output is very well documented, so it is trivial to see what is going on.

    One possibility would be, rather than modify each database in place, do this:

    • create your a new version 8 database (DB_NEW)
    • migrate all of the data from the old database (DB) (you will need up to 7 different data migration scripts for this)
    • validate new database
    • if success, rename DB to DB_OLD and rename DB_NEW to DB
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have very simple situation and really don't have a clue why this isn't
Simple situation. I have a list of lists, almost table like, and I am
I have a simple RMI 'compute' server application (similar to this ) that accepts
Here is a simple situation. (My apologies my SQL is quite rusty.) (I am
This has to be simple, at least it was in good old .Net where
Whilst implementing my first MVVM application in WPF, I've been wondering about the pros
Status Quo For our customer we are developing some libraries and applications that run
I'm currently writing an AI for a game that is written in c++. The
I'm working on a small simulation that is running on my 8-core workstation. The
Bug reported as fixed by Apple, see accepted answer below ... UPDATE MON AUG

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.