Reputation: 16705
I have a SQL Server 2008 DB Project, and want to execute multiple scripts, in order, on post deploy.
I've added a PostDeploy.Sql
script to a scripts folder, and marked that as PostDeploy
, and that works fine. I'm aware that only one script can be marked as post deploy; so I thought I could do this within the script:
-- Post Deploy stuff
SELECT * FROM MYTABLE
GO
:r RunPostDeploy2.sql
GO
Where RunPostDeploy2.sql
is located within the same directory as a link. I've tried copying the file locally, but the issue seems to be the use of :r
.
Is it possible to call external scripts from post deploy in this way and, if so, how?
Upvotes: 12
Views: 15653
Reputation: 1183
You have to turn your script into SQLCMD mode. There is a toolbar button right on the top of the file like this.
Or you can do this by going to
Upvotes: 16
Reputation: 4726
First, you can only have one script set as "post deploy" (usually set up for you in the older DB Projects).
When using a post-deploy script, you include the others using:
:r .\MyScript1.sql
:r .\MyScript2.sql
:r .\NestedFolder1\MyScript25.sql
--etc
It looks like you're missing the ".\" which tells the run command to look in that folder.
Upvotes: 8