我对编码很陌生,所以请放心吧。
我正在将Visual重写为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给了我一个错误:
在INSERT的SET子句或列列表中多次指定列名'max‘。在同一子句中,不能为列分配多个值。修改子句以确保只更新一次列。如果该语句更新或将列插入视图中,则列混叠可以隐藏代码中的重复。
我确信VB版本可以工作,尽管它不应该工作--因为它做的是同样的事情。
我有什么办法解决这个问题吗?只插入一个值对我来说是行不通的,因为我不知道哪个值是正确的。
发布于 2016-09-15 07:58:51
原来VB脚本正在覆盖数据。第二个插入是实际插入的唯一一个。
https://stackoverflow.com/questions/39372538
复制相似问题