我试图避免使用多个 INSERT SQL 查询,但如果我必须这样做的话。我在那里读到你可以简单地使用,INSERT INTO table(field) SELECT 'value' UNION ALL SELECT ...
但是我在 MS Access 2007 下遇到了它的语法问题。我尝试了一些变体,但没有一个有效:我总是得到“不正确的语法”或“缺少运算符”错误。我尝试过使用和不使用ALL
限定符,使用和不使用SELECT
关键字等。以下是我使用 VBA 创建查询的方式:
sql_query = "INSERT INTO " & tmp_tbl_name & " (transit)"
For Each xlCell In xlRange
sql_query = sql_query & " SELECT '" & xlCell.Value & "' "
sql_query = sql_query & "UNION"
Next xlCell
sql_query = Mid(sql_query, 1, Len(sql_query) - 6)
DoCmd.RunSQL (sql_query)
这是我正在生成的查询的简短示例:
INSERT INTO tmp_tbl_2012_08_17_15_44_03 (transit)
SELECT 'L02_NA010001'
UNION
SELECT 'L13_PB010001'
UNION
SELECT 'L31_US020001'
UNION
SELECT 'L33_EX020010'
...
该表只有一个VARCHAR(255)
字段,与任何其他表没有关系(它是一个临时表,用于处理一些事情并只保留其中的一些元素)。
非常感谢 !