【问题标题】:SQL Server - SKIP DML statements from a given SQL Script fileSQL Server - 跳过给定 SQL 脚本文件中的 DML 语句
【发布时间】:2014-03-13 05:43:06
【问题描述】:

我有一个巨大的 sql 服务器脚本,它混合了 ddl、dml 操作,并且需要创建一个干净的数据库结构(没有数据)。事务是否可以通过某些参数或其他方式跳过 DML 脚本。

提前致谢。

阿伦

【问题讨论】:

    标签: sql sql-server operation dml


    【解决方案1】:

    开箱即用:没有。但是您可以将 DML 语句包装在您的脚本中,例如:

    if ($(RUNDML) = 1)
    begin
       --your dml here
    end
    

    其中 RUNDML 是 sqlcmd variable。根据您是否想要正在构建的数据库中的数据,您将使用不同的 RUNDML 值调用脚本。

    或者,将 DML 分离到另一个脚本(或多个脚本)中,以便您可以选择是否运行构建的数据部分。

    【讨论】:

    • 嗨,Ben,感谢您的回复 - 有 300 多个文件,无法拆分。有没有办法在恢复数据库时做到这一点,比如 Oracle 有 imp 实用程序 where data=N
    • SQL Server 备份和还原不允许这样做。您可以尝试使用 SSDT 或第三方工具(我使用 Red Gate 的 SQL 比较)将此数据库与空数据库进行比较,并将差异应用于空数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2012-08-17
    • 2011-12-17
    相关资源
    最近更新 更多