如何获取此SQL语句以将空的Excel表格写入第一个表格以外的行?

时间:2019-05-02 19:49:16

标签: sql excel oledb

我正在尝试使用OleDB 12将一些数据(作为局部变量存储在自动化工具中)发送到Excel工作表。到目前为止,我想出的代码(如下)是我成功编写的,可以成功地写入数据到模板化Excel工作表的第一行(标题已经填写)。我的问题是,每次后续迭代都不会在第一次成功之后将数据写入任何行(索引2)。

我尝试更改where子句以与行索引一起使用,而不是查找空行,但这并不成功,并返回了错误。我还尝试利用'INSERT INTO'语句,该语句在我尝试编写该语句的所有方式中都返回了复杂的运行时错误。您不能在Oledb中使用“ INSERT”吗?

更新语句(成功):

UPDATE [Sheet1$] 
SET [SAP_ID] = %SapEmployeeNumber%
WHERE [SAP_ID] IS NULL;

插入语句(尚未生效):

INSERT INTO Sheet1$ (SAP_ID)
VALUES %SapEmployeeNumber%
WHERE [SAP_ID] IS NULL

期望将数据写入第一行(换句话说,员工编号为空)。

1 个答案:

答案 0 :(得分:1)

首先:一个INSERT语句从不有一个WHERE子句-check the official MS docs on INSERT

第二:您需要将VALUES部分中的值放在括号中,如下所示:

INSERT INTO Sheet1$ (SAP_ID)
VALUES (%SapEmployeeNumber%)