有没有办法在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语句,从映射表中获取所有供应商列。但是,我不能确定列将以正确的顺序从映射表中出来。
答案 0 :(得分:2)
插入mytable(col1,col3,col2)值(:val1,:val3,:val2)
答案 1 :(得分:1)
为什么不重命名列?也许我错过了什么?
INSERT INTO table
(column-1, column-2, ... column-n)
VALUES
(value-1, value-2, ... value-n);
允许您以相同的顺序指定列名称和匹配值。
编辑列出来的顺序恰好按照您在select子句中指定的顺序排列。我又错过了一些非常大的东西。
答案 2 :(得分:1)
不同的列映射到每个供应商的数据。
为每个供应商编写一个视图,将每个供应商的表映射到您的通用格式。
从每个视图或视图的并集中进行插入。