You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pre- and post-deployment scripts are SQL scripts that are included in the project to be executed during deployment. Pre/post-deployment scripts are included in the `.dacpac` but they aren't compiled into or validated with database object model. A pre-deployment script is executed before the deployment plan is executed but the deployment plan is calculated before the script executes. A post-deployment script is executed after the deployment plan completes.
22
+
Pre-deployment and post-deployment scripts are SQL scripts that are included in the project to be executed during deployment. Pre/post-deployment scripts are included in the `.dacpac` but they aren't compiled into or validated with database object model. A pre-deployment script is executed before the deployment plan is executed but the deployment plan is calculated before the script executes. A post-deployment script is executed after the deployment plan completes.
23
23
24
24
## SQL project file sample and syntax
25
25
@@ -44,14 +44,14 @@ The following example from a SQL project file adds the file `populate-app-settin
44
44
</Project>
45
45
```
46
46
47
-
Multiple files can be executed as part of a pre- or post-deployment script by using a SQLCMD script that calls each file in order.
47
+
Multiple files can be executed as part of a pre-deployment or post-deployment script by using a SQLCMD script that calls each file in order.
48
48
49
49
```sql
50
50
:r .\scripts\script1.sql
51
51
:r .\scripts\script2.sql
52
52
```
53
53
54
-
Those files should be excluded from the database model build by setting the `Build Action` property to `Remove` in the file properties in Visual Studio or by adding an entry for the file in the `.sqlproj` file with the `Build` attribute set to `Remove`. When the SQL project is built, the additional files are combined into their referencing pre-deployment or post-deployment script in the `.dacpac` by the Microsoft.Build.Sql project SDK.
54
+
Those files should be excluded from the database model build by setting the `Build Action` property to `Remove` in the file properties in Visual Studio or by adding an entry for the file in the `.sqlproj` file with the `Build` attribute set to `Remove`. When the SQL project is built, the extra files are combined into their referencing pre-deployment or post-deployment script in the `.dacpac` by the `Microsoft.Build.Sql` project SDK.
55
55
56
56
```xml
57
57
...
@@ -62,38 +62,53 @@ Those files should be excluded from the database model build by setting the `Bui
62
62
</Project>
63
63
```
64
64
65
-
> [!TIP]
65
+
In SDK-style SQL projects, adding a `Build Remove="path\file.sql"` entry removes the file from the project entirely, which causes it to no longer appear in the Visual Studio Code project view. To keep the file visible while still excluding it from model compilation, add it again as a `None` item:
66
+
67
+
```xml
68
+
...
69
+
<ItemGroup>
70
+
<BuildRemove="scripts\script1.sql" />
71
+
<NoneInclude="scripts\script1.sql" />
72
+
<BuildRemove="scripts\script2.sql" />
73
+
<NoneInclude="scripts\script2.sql" />
74
+
</ItemGroup>
75
+
</Project>
76
+
```
77
+
78
+
This prevents the file from being compiled as part of the database model while keeping it visible in the project.
79
+
80
+
> [!TIP]
66
81
> You can validate the pre-deployment and post-deployment scripts after project build, by changing the `.dacpac` file extension to `.zip` and unarchiving the `.zip` to a folder. A single `.sql` file is present for pre-deployment and post-deployment scripts, and should contain the entire Transact-SQL contents of all referenced files in the originating SQL project.
67
82
68
-
## Add pre- and post-deployment scripts
83
+
## Add pre-deployment and post-deployment scripts
69
84
70
85
::: zone pivot="sq1-visual-studio"
71
86
72
87
In **Solution Explorer**, right-click the project and select **Add** > **Script**. Select **Pre-Deployment Script** or **Post-Deployment Script**.
73
88
74
-
The script file is added to the project and opened in the query editor, where you can complete the script. This script will be executed before or after the deployment plan is executed every time the project is deployed.
89
+
The script file is added to the project and opened in the query editor, where you can complete the script. This script will be executed before or after the deployment plan is executed, every time the project is deployed.
75
90
76
91
::: zone-end
77
92
78
93
::: zone pivot="sq1-visual-studio-sdk"
79
94
80
-
In **Solution Explorer**, right-click the project node and select **Add**, then**New Item**. The **Add New Item** dialog appears, select **Show All Templates**. and then **Table**. Select**Pre-Deployment Script** or **Post-Deployment Script**.
95
+
In **Solution Explorer**, right-click the project node and select **Add** >**New Item**. The **Add New Item** dialog appears, select **Show All Templates** > **Table**, then select**Pre-Deployment Script** or **Post-Deployment Script**.
81
96
82
-
The script file is added to the project and opened in the query editor, where you can complete the script. This script will be executed before or after the deployment plan is executed every time the project is deployed.
97
+
The script file is added to the project and opened in the query editor, where you can complete the script. This script will be executed before or after the deployment plan is executed, every time the project is deployed.
83
98
84
99
::: zone-end
85
100
86
101
::: zone pivot="sq1-visual-studio-code"
87
102
88
-
In the **Database Projects** view of VS Code or Azure Data Studio, right-click the project and select **Add Pre-Deployment Script** or **Add Post-Deployment Script**. Provide a script name without the file extension.
103
+
In the **Database Projects** view of Visual Studio Code or Azure Data Studio, right-click the project, and select **Add Pre-Deployment Script** or **Add Post-Deployment Script**. Provide a script name without the file extension.
89
104
90
-
The script file is added to the project and opened in the query editor, where you can complete the script. This script will be executed before or after the deployment plan is executed every time the project is deployed.
105
+
The script file is added to the project and opened in the query editor, where you can complete the script. This script will be executed before or after the deployment plan is executed, every time the project is deployed.
91
106
92
107
::: zone-end
93
108
94
109
::: zone pivot="sq1-command-line"
95
110
96
-
Edit the `.sqlproj` file directly to add pre- or post-deployment scripts. Add a `<PreDeploy>` or `<PostDeploy>` item to the `<ItemGroup>` section of the `.sqlproj` file.
111
+
Edit the `.sqlproj` file directly to add pre-deployment or post-deployment scripts. Add a `<PreDeploy>` or `<PostDeploy>` item to the `<ItemGroup>` section of the `.sqlproj` file.
97
112
98
113
For example, to add the script `scripts\before-script.sql` to our project as a pre-deployment script:
99
114
@@ -104,7 +119,7 @@ For example, to add the script `scripts\before-script.sql` to our project as a p
104
119
</ItemGroup>
105
120
```
106
121
107
-
This script `scripts\before-script.sql` is executed before the deployment plan is executed every time the project is deployed.
122
+
This script `scripts\before-script.sql` is executed before the deployment plan is executed, every time the project is deployed.
0 commit comments