将VB脚本导入SQL(VB将2个插入到一列中)

时间:2016-09-07 14:23:57

标签: sql vba sql-insert

我对编码很陌生,所以请你放轻松 我将Visual Basic重写为SQL。

VB代码将文件中的转换数据插入tableY 我希望我的SQL代码将数据加载到tableX,将其转换并加载到tableY 我创建了tableX并从文件中插入了未转换的数据。现在我想转换它并在发现问题时将其插入tableY

这是VB代码

IF some-if-statement THEN
    DTSDestination("max") = Mid(DTSSource("Col001"),985,5)
    another MID
    another MID
    another MID
    DTSDestination("max") = Mid(DTSSource("Col001"),983,5)

这是我的SQL版本:

INSERT INTO tableY (max, aaa, bbb, ccc, max)
select
    substring(Col001,985,5),
    another substring,
    another substring,
    another substring,
    substring(Col001,983,5)
from tableX 
where some-where-statement

问题在于我尝试将2个值[substring(Col001,985,5)substring(Col001,983,5)]插入1列。
显然SQL给了我一个错误:

  

列名' max'在INSERT的SET子句或列列表中多次指定。在同一子句中不能为列分配多个值。修改子句以确保列只更新一次。如果此语句将列更新或插入到视图中,则列别名可以隐藏代码中的重复。

我确信VB版本有效,即使它不应该 - 因为它做同样的事情。
关于如何解决这个问题的任何想法?只插入一个值对我来说不会起作用,因为我不知道哪一个是正确的。

1 个答案:

答案 0 :(得分:0)

事实证明VB脚本正在覆盖数据。第二个插入是实际插入的唯一插入。