我对编码很陌生,所以请你放轻松 我将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版本有效,即使它不应该 - 因为它做同样的事情。
关于如何解决这个问题的任何想法?只插入一个值对我来说不会起作用,因为我不知道哪一个是正确的。
答案 0 :(得分:0)
事实证明VB脚本正在覆盖数据。第二个插入是实际插入的唯一插入。