【问题标题】:t-sql insert - select - with parameterst-sql 插入-选择-带参数
【发布时间】:2012-08-16 22:51:13
【问题描述】:

我有 4 张桌子。我们将在其中一张表中插入数据(表 A)。 Table A 将接收 Table B、C、D 的 misc 数据以及一些未知的可变参数数据。

如何使用带有接收参数的 SELECT 设置 INSERT?

【问题讨论】:

    标签: sql sql-server select sql-insert


    【解决方案1】:

    这样的?

    Insert INTO TableA (col1, col2,col3,col4)
      SELECT b.col1, c.col2, d.col3, @myparam
      FROM TableB as b
      INNER JOIN TableC as c
        ON b.id = c.id
      INNER JOIN TableD as d
        on c.id = d.id
    

    【讨论】:

    • 但是也会有参数被插入到 TableA 中,而不仅仅是基于 where 子句。 TableA(col1 = 来自参数的值,col2 = 来自 tableb 的值,col3 = 来自表 c 的值)
    • 把它放在select里就行了。查看我的更新。您可以在任何 select 语句中添加一个参数,它不需要以某种方式成为表的一部分。
    • 非常感谢。我相信我知道你现在从哪里来。我会在早上尝试并给你荣誉和复选标记:D 我非常感谢你。这是我这一天的最后一项任务,直到你来,我才能完成它。非常感谢你:)
    【解决方案2】:

    类似这样的:

    DECLARE @a int, @b int
    SET @a = 5
    SET @b = 7
    
    INSERT INTO TableA(Column1, Column2)
    SELECT SomeOtherColumn, @a
    FROM TableB
    UNION
    SELECT YetAnotherColumn, @b
    FROM TableC
    

    【讨论】:

    • 是的,但是,@a 来自 Web 服务而不是来自 tableB。也许我错过了一些东西。我今天已经连续编程超过 12 个小时了,现在有点产生幻觉了,哈哈
    • @ArgyleGhost 不,@a 和 @b 不是来自表格,它们是我在上面声明的变量。我只是在演示如何使用它们,同时将它们与从您的其他表之一中选择的列混合使用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2012-07-30
    • 1970-01-01
    • 2012-06-09
    • 2014-10-26
    • 2014-10-05
    • 2013-01-04
    相关资源
    最近更新 更多