使用SSIS清除Excel中的数据

时间:2013-12-18 12:43:49

标签: sql excel ssis

我在SQL中创建了s存储过程,它从平面文件导入数据,更新数据并导入表中的更新数据。

经过一番研究,我发现导出这个(64位)表的唯一方法是创建一个SSIS包并使用SQL Job来执行包。

我已经完成了所有这些并设法获取表数据导出但问题是它在导入之前不会清除数据。然后我创建了以下

SSIS Package

删除excel表时,我有以下SQL语句:DROP TABLE [Sheet1 $] 创建表时,我有以下SQL语句:

CREATE TABLE 'Sheet1$' ( BRANCH NVARCHAR(10) , SRCBRANCH NVARCHAR(10) , DEPARTMENT NVARCHAR(10) , GLCODE NVARCHAR(10) , DOCDATE NVARCHAR(10) , VALUE NVARCHAR(50) , ITEMREFERENCE NVARCHAR(100) , MISCREFERENCE NVARCHAR(100) , SUFFIX NVARCHAR(10) , NARRATIVE [NVARCHAR(100) ) GO

删除表后,它会清除所有数据和标题,然后在第二个SQL任务(创建Excel表)上失败,并显示以下错误消息:

[Execute SQL Task] Error: Executing the query "CREATE TABLE 'Sheet1$' (
    BRANCH NVARCHAR(10) ,
    S..." failed with the following error: "Syntax error in CREATE TABLE statement.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

失败后,由于验证错误,我无法执行包。这是因为Excel工作表中的标题已被删除。

有人可以指出我正确的方向。我已经筋疲力尽了。

此致

1 个答案:

答案 0 :(得分:1)

CREATE TABLE 'Sheet1$' 
(
    BRANCH NVARCHAR(10) ,
    SRCBRANCH NVARCHAR(10) ,
    DEPARTMENT NVARCHAR(10) ,
    GLCODE NVARCHAR(10) ,
    DOCDATE NVARCHAR(10) ,
    VALUE NVARCHAR(50) ,
    ITEMREFERENCE NVARCHAR(100) ,
    MISCREFERENCE NVARCHAR(100) ,
    SUFFIX NVARCHAR(10) ,
    NARRATIVE **[**NVARCHAR(100) 
)
GO

***这是您的语法错误。很久以前就问过了,所以我觉得你现在已经纠正了这个问题,但是我想发帖告诉别人知道问题是什么。