Paul Michaels
Paul Michaels

Reputation: 16705

SQL Server project executing multiple script post deploy

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

Answers (2)

ravish.hacker
ravish.hacker

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.

enter image description here

Or you can do this by going to

enter image description here

Upvotes: 16

Peter Schott
Peter Schott

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

Related Questions