【问题标题】:SQL server 2008 query move table data from one to anotherSQL Server 2008 查询将表数据从一个移动到另一个
【发布时间】:2017-02-13 13:18:32
【问题描述】:

我在coldfusion中有以下内容:

<cfquery name="queryInRange" datasource="Database1" >
        select STOCK
        from CAR
        WHERE (CAR_INV_DATE between '#dateStartDate#' and '#dateEndDate#')
    </cfquery>

    <cfoutput query="queryInRange">

        <cfquery name="INSStocks" datasource="Database1" > 
            if not exists (select strStockNumber from Aggregates WHERE strStockNumber='#STOCK#')
            BEGIN
                insert into Aggregates (strStockNumber)
                    VALUES('#STOCK#')
              END
        </cfquery>

    </cfoutput>

这里的想法是从一个表(供应商表)中提取现场库存,并确保它在第二个表中有记录,然后我们向其中添加一些信息。我想知道,有没有办法在 sql 中做到这一点,所以有 cf 循环?

【问题讨论】:

    标签: sql-server tsql coldfusion


    【解决方案1】:

    是的,有一种方法可以只使用 sql。事实上,有不少。这是一个。

     insert into table2
     (field1, field2, etc)
     select value1, value2, etc
     from otherTables
     etc
     except 
     select value1, value2, etc
     from table1
    

    【讨论】:

    • EXCEPT 的工作方式是否与我的查询中的 IF NOT EXISTS 相同?
    • 阅读the documentation on Except以了解其工作原理。
    • 对,它说“从查询返回到 EXCEPT 运算符左侧的任何不同的值,这些值也不是从正确的查询返回的。”我试图了解这与 NOT 有何不同EXISTS "指定一个子查询来测试行是否存在。"
    • 理论上,它们做同样的事情,即只返回匹配的记录。但是,在比较值的方式上存在一些差异。您可以通过先进行搜索自己回答很多这些问题 :) 对“SQL Server EXCEPT vs NOT EXISTS”进行非常简短的搜索会出现诸如stackoverflow.com/questions/1662902/… 之类的结果
    • 可能需要一个 MERGE 语句。 msdn.microsoft.com/en-us/library/bb510625.aspx
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多