【问题标题】:Insert static data in database in SSDT在 SSDT 中的数据库中插入静态数据
【发布时间】:2015-07-02 04:25:26
【问题描述】:

我想用 SSDT 中定义的一些数据预先填充我的数据库表。这样插入数据只发生一次。我正在使用 SQL 2005 ??我该怎么做??在 SQL 2008 中有 MERGE,但我在 2005 年找不到解决方案!!!

【问题讨论】:

    标签: mysql sql visual-studio-2012 sql-server-data-tools dacpac


    【解决方案1】:

    在看到你使用 SQL 2005 之前,我都很兴奋;),可怜的你,直到最近我还在使用 SQL 2005 数据库时,我才感觉到你的痛苦。

    您需要执行以下操作:

    "如果不存在 (select * from table where col = blah 将 xxx 插入表中 "

    如果您有很多行,那么您可以考虑做一些事情,例如检查其中一行并从 cav 文件执行批量插入或 openrowset - 或 - 使用 redgate 数据比较来为您管理它。

    埃德

    【讨论】:

      【解决方案2】:

      如果它是预定义的,您也许可以将其保存出来并使用 BCP 或类似的东西插入。您还可以编写脚本并将其作为某种“IF NEW”检查的一部分调用。但是,对于正在进行的脚本,最好的办法是插入临时表,然后执行某种 EXCEPT 或 LEFT JOIN 以找出不存在的内容,并酌情更新或插入。

      没有真正干净的方法来做到这一点,但它是可行的。我担心的是您可能需要考虑一个单独的“新建”脚本并告诉人们创建数据库,然后如果他们重新创建了数据库则运行该脚本。这将使您的主要发布脚本的大小更易于管理。

      【讨论】:

        猜你喜欢
        • 2022-09-28
        • 2019-02-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-26
        • 1970-01-01
        • 2016-11-22
        • 2016-10-21
        • 2014-07-09
        相关资源
        最近更新 更多