- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 SQL Server 数据库工具的新手,可能对部署后脚本正在做什么做出了不正确的假设。如果我错了,请纠正我。
据我所知,部署后脚本预计将在每次部署后运行,而不仅仅是一次部署。
如果我想让部署后脚本只运行一次脚本,有没有办法做到这一点,而无需数据库中的版本或历史记录表来记录这些脚本何时运行?
即我是否可以将脚本的任何后续修改添加为项目中的新文件,并添加版本号,并将其添加到部署后脚本,但是否可以忽略先前的脚本(可能无需先删除它)?不管它在部署期间是否仍然运行脚本?
是否有这种事情的配置还是这种意外行为?
最佳答案
部署前和部署后脚本旨在在您每次发布项目时运行。您的最佳做法是使它们可重复。添加检查,以便如果数据已经存在,您就不会再次运行或类似的东西。您也可以构建某种基本的日志记录表来存储它 - 如果在表中找不到行,请运行脚本并将行放入表中。
如果存在多个脚本,您不能告诉项目只运行最新版本的脚本,因为它们都内置在一个大型 PreDeploy.sql 或 PostDeploy.sql 文件中。您需要在每个部分/脚本中添加一些内容来告诉它在哪里查看以了解是否要运行。这可能是现有的数据检查、表检查、版本检查或其他东西,但它需要知道在某处使用什么来知道是否运行。
除了注释掉脚本或通过 SQLCMD 变量或其他检查以某种方式处理它们之外,没有办法关闭它。这些仍然需要您以每个脚本应该运行或不应该运行的方式进行编码。如果您提供一两个示例,说明您要在部署前/部署后脚本中完成的任务,我们可能会提供一些更好的指导。
出于我们的目的,我们使脚本可重复使用,并在运行时将其删除。它们仍处于源代码控制中,或者您可以在删除它们之前使用快照来存储该项目版本。
关于sql - ssdt 部署后脚本运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822346/
SSDT 和 SSDT-商业智能有什么区别? 我已经安装了 SQL Server 2017,然后继续下载 Business Intelligence Development Studio 但发现它被
我想知道是否有人知道是否有任何方法可以将部署历史记录到文件中? 我们有一个数据库项目,但我在 SSDT 中找不到这个选项,而且在上次部署发生时我在数据库中也找不到。 最佳答案 没有直接的选项,但您可以
我有一个旧项目,它使用 WCF 与 SQL Server 的 C# CLR 触发器。我总是通过运行脚本来安装它。 但我决定在 VS 2012 上继续研究 SSDT 项目。我已经从空数据库中导入了项目。
我是 SQL Server 数据库工具的新手,可能对部署后脚本正在做什么做出了不正确的假设。如果我错了,请纠正我。 据我所知,部署后脚本预计将在每次部署后运行,而不仅仅是一次部署。 如果我想让部署后脚
我在做一个 tsql 项目,我注意到现有代码使用了一种我以前从未见过的语法。他们在数据库名称前放置了一个美元符号以表示完全合格的地址。 这是一个例子: SELECT c.AccountCode, F
我通常使用 SQLPackage 命令提示路由进行部署,但这次当我尝试发布到测试服务器时超时。 我曾尝试按照博客文章在注册表中设置超时属性,但它也无济于事.. https://blogs.msdn.m
使用 msbuild 和 SSDT,我尝试了 IncludeTransactionalScripts,但它似乎只将每个语句放在一个单独的事务中。 是否可以将多个数据库项目作为事务发布? 如果没有,我至
Visual Studio 2019 - SSDT 16.0。 我在 Dev 数据库中有 8 个表,这些表最初是临时的。我删除了表语法的时间部分,项目拒绝构建。我删除了数据库并在 SSMS 中为这些表
在我们的 SSDT 项目中,我们有一个巨大的脚本,其中包含许多用于从旧系统导入数据的 INSERT 语句。使用 sqlcmd 变量,我希望能够有条件地将文件包含到部署后脚本中。 我们目前正在使用 :r
我有两个 SSDT 项目。 Database1 引用 Database2。 部署 Database1 时,Table2(来自 Database2)按预期部署。那是因为当我部署时,复选框“包括复合对象”
我们一直在使用VS 2017 Shell版本进行BI开发几个月没有问题,但今天它意外停止并自行重新启动。重启后,我们得到一个错误: Could not load file or assembly 'M
我正在使用 SQLPackage.exe 实用程序和数据库项目的发布配置文件来运行对 SQL Server 数据库的更改。 根据我的理解,这是部署过程: 预部署脚本 主要部署 部署后脚本 我在发布配置
我有一个用于 Azure SQL 数据库的 sqlproj XML。我想将包含多个表的数据库部署到特定架构中,该架构也是使用此构建创建的。如何指定用于 CREATE SCHEMA [schema-na
在较低级别的环境中部署后,我希望对一些表进行一些行计数。我有一个项目,将数据库部署到 SQL,并将一些数据加载到其中。我想验证该表现在已填充数据。我已阅读有关创建单元测试的 MSDN,但我有一些悬而未
标题说明了一切,但未提供更多详细信息。当我将 VS2015 中的架构比较工具用于我的 SSDT 项目和服务器上的数据库时。用户返回的比较结果总是不同的。我检查了它所说的差异,但环境之间没有任何差异。
我在 VS 2017 中创建的 SQL Server 数据库项目中收到许多“未解析的对象引用”错误。 这些错误都指向“sys”。对象。 我从 master 数据库中添加了一个 .dacpac 引用,包
我正在尝试发布一个数据库项目,该项目还包含一个分区函数。 我的目标数据库有不同的(日期)值,我不想修改这些值,尽管 SSDT/SqlPackage 总是尝试重新创建分区函数,不用说 - 所有使用 PF
我们可以使用 TFS&SSDT 创建 SQLServer 部署脚本,但是有没有办法创建回滚脚本,以便我们可以回滚部署?谢谢 最佳答案 由于 SSDT(和类似产品)都通过将项目中的架构与实时数据库进行比
我在 Visual Studio 2013 中使用 SSDT。 我为开发服务器创建了一些发布前和发布后脚本。预部署脚本从表中清空数据并重新设置所有自动标识字段。部署后脚本使用静态数据和示例数据填充表。
我在 SQL 项目中有一个 PostDeployment 脚本,它在发布时运行项目中的许多其他脚本: :r .\Scripts\Script1.sql :r .\Scripts\Script2.sql
我是一名优秀的程序员,十分优秀!