【问题标题】:SQL Server project executing multiple script post deploySQL Server 项目执行多个脚本后部署
【发布时间】:2014-06-01 14:31:50
【问题描述】:

我有一个 SQL Server 2008 数据库项目,并希望在部署后按顺序执行多个脚本。

我已将PostDeploy.Sql 脚本添加到脚本文件夹中,并将其标记为PostDeploy,效果很好。我知道只有一个脚本可以标记为部署后;所以我想我可以在脚本中做到这一点:

-- Post Deploy stuff
SELECT * FROM MYTABLE
GO

:r RunPostDeploy2.sql
GO

RunPostDeploy2.sql 与链接位于同一目录中。我试过在本地复制文件,但问题似乎是使用:r

是否可以以这种方式从部署后调用外部脚本,如果可以,如何?

【问题讨论】:

    标签: sql sql-server visual-studio sql-server-2008 database-project


    【解决方案1】:

    您必须将脚本转换为 SQLCMD 模式。像这样在文件顶部有一个工具栏按钮。

    或者你可以去

    【讨论】:

    • 啊;您及时回答了我需要的确切答案!谢谢!
    【解决方案2】:

    首先,您只能将一个脚本设置为“部署后”(通常在较旧的数据库项目中为您设置)。

    使用部署后脚本时,您可以使用以下方式包含其他脚本:

    :r .\MyScript1.sql
    :r .\MyScript2.sql
    :r .\NestedFolder1\MyScript25.sql
    --etc
    

    您似乎缺少告诉运行命令在该文件夹中查找的“.\”。

    【讨论】:

    • 是的,也不是。添加 .\ 确实给了我正确的错误 - 这似乎是它无法从当前目录(它仅作为链接存在)中找到调用的 SQL 文件。我们是说不能从 VS 链接调用脚本吗?
    • 很确定它不会识别链接。如果您查看幕后,这些链接文件具有“lnk”扩展名,并且只是指向实际文件。您可以查看使用符号链接tested.com/tech/windows/… - 但通常最好将实际脚本存储在每个项目中,除非它们真正共享。 (即便如此,我会将符号链接作为您的部署后文件夹下的文件夹)
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多