What would your ideal solution to this issue be then?
Well, to date, I have used IBExpert (IBE) to manage Firebird databases locally (dev & test) and remotely (clients). When developing, I write the scripts in IBE because it has intellisense for the DB. Exactly like I do in SSMS/VS. As a rule, I create a script file per table/view/proc to keep things organised. These script files go into version control. Then I create a top-level migration script that imports and runs the other individual scripts in correct sequence. Right from IBE. E.g.
VersionX.sql would contain:
Import "Table1.sql";
Import "View1.sql";
Import "Proc21.sql";
etc.
Then all I need to do for deployment is, from IBE, connect to the DB and run the top-level script. Whether remote DB or local, doesn't matter. I can also interactively highlight parts of the top level script to run. This helps a lot when there is some kind of problem with one of the scripts.
Having to create a batch file is not so much as issue. But not having the ability to test parts of it interactively and having to go to command line to run it is a major pain. For me, at least. Or maybe I am just approaching the problem incorrectly...
So you have all the scripts but you need to deploy/execute them on different environments? I honestly don't think SSMS should be at fault here, basic release management solves these type of things, unless I'm misunderstanding what the problem is.
.
See above. My point is that SSMS cannot run a top-level script that includes all the individual scripts for a release. At least that is what I understand it cannot do.
Looks like an interesting thread but i`m not sure I understand the problem and the suggested solutions?
Why not use @@trancount in ssms?
Not sure how @@trancount solves the problem?
As above. When you deploy your code rm tools should sort all that out.
Not sure what rm tools are. Pls elaborate