如何在 SQL Server 数据库项目中创建视图作为部署后脚本?

sr2*_*r28 3 t-sql visual-studio

我已经创建了一个 SQL Server 数据库项目并导入了我的数据库。我有一些静态数据表,我想在每次重新部署时重新创建它们,因此它们会作为部署后脚本的一部分重新创建。

为了确保删除并重新创建它们,我已将这些静态数据表更改为具有“无”构建操作,因此它们作为构建的一部分被删除,并且仅作为部署后步骤的一部分重新创建。

我的问题是我有一个引用这些表的视图。显然,这显示了语法错误,因为表不再是构建的一部分,因为它们的构建操作是“无”。我的解决方法是尝试将视图创建为部署后脚本的一部分。我使用以下代码执行此操作:

:r .\PostDeploymentScripts\Views\myView.sql
Run Code Online (Sandbox Code Playgroud)

实际的脚本如下所示:

CREATE VIEW [CompTotalByType] AS
SELECT
    c.Id,
    t.id AS TypeId,  
    SUM(c.total) AS CompTotal,
FROM CompNumber c
    INNER JOIN Type t 
    ON t.ProdId =  c.ProdId
GROUP BY
    c.Id,
    t.id
Run Code Online (Sandbox Code Playgroud)

但是,现在我在“CREATE VIEW”下收到语法错误,如下所示:

严重性代码 说明 项目文件行抑制状态错误 SQL72007:语法检查失败“CREATE 附近的语法不正确”。在附近的批处理中:'CREATE VIEW [CompTotalByType] AS' ....路径名称......

但是,当我将此代码放入 SSMS 时,它没有语法错误。这是什么原因造成的?

sr2*_*r28 6

我在这里找到了答案:SQL72007:语法检查失败“发生意外的文件结尾。” 批量接近:

第二个答案说您需要在前一个脚本中添加“GO”。这是有道理的,因为 CREATE VIEW 需要位于其自己的批次中。因此,在创建视图之前,我在之前的脚本底部添加了一个“GO”并修复了该问题。