代码之家  ›  专栏  ›  技术社区  ›  jimconstable

在insert语句中,值的顺序是否与列的顺序不同?

  •  0
  • jimconstable  · 技术社区  · 17 年前

    有没有办法在insert语句中命名或引导您的值? 如。

    declare @temp TABLE
    (
        column1 int,
        column2 int,
        column3 int
    )
    
    insert @temp(column1, column2, column3)
    Select 1 as column1,3 as column3, 2 as column2
    
    select * from @temp
    

    当我想要第2列中的2和第3列中的3时,将返回第2列中的3。

    编辑

    我正在尝试编写一些动态sql映射代码。不同的列映射到每个供应商的数据。因此,我的计划是编写insert语句,从映射表中获取所有供应商列。但是,我不能确定这些列是否会以正确的顺序从映射表中出来。

    3 回复  |  直到 17 年前
        1
  •  2
  •   Shea    17 年前

    在mytable(col1,col3,col2)中插入值(:val1,:val3,:val2)

        2
  •  1
  •   tpdi    17 年前

    不同的列映射到每个供应商的数据。

    为每个供应商编写一个视图,将每个供应商的表映射到您的通用格式。

    从每个视图或视图的并集执行插入操作。

        3
  •  1
  •   ojblass    17 年前

    为什么不直接重命名这些列呢?也许我错过了什么?

    INSERT INTO table
    (column-1, column-2, ... column-n)
    VALUES
    (value-1, value-2, ... value-n);
    

    允许您按相同顺序指定列名和匹配值。

    编辑 列的显示顺序与select子句中指定的顺序完全相同。我又错过了一件大事。