2

我想将数据库中的所有表导出到 Excel 文件。该过程应该是动态的,因为数据库中的表可能会有所不同。

当前进程使用SSIS如下:

  1. 生成一个CREATE TABLE字符串。
  2. 在带有 Excel CM的任务中使用该字符串Execute Sql,这将创建一个 Excel 文件。
  3. 生成INSERT INTO OPENROWSET... SELECT FROM ...命令字符串。
  4. Execute Sql在带有 SQL SERVER CM的任务中使用此字符串。

问题是创建的 excel 文件列类型都是“通用的”,即使我的脚本另有说明。

一个示例CREATE TABLE脚本:

CREATE TABLE `CONTACT1`
(
    [ACCOUNTNO] LongText,
    [COMPANY]   LongText,
    [CREATEON]  datetime,
    [CREATEAT]  LongText,
)

“玩”数据类型没有帮助。例如,使用VARCHAR(1000)代替LongText等。

我已经尝试生成xlsxxls文件。

这个问题阻止我稍后使用*INSERT INTO OPENROWSET(...) SELECT FROM ...*命令插入数据。一个示例INSERT INTO脚本:

INSERT INTO  OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=c:\\junk    \\accountnoWithNoApps.xlsx;HDR=YES;IMEX=1\"',
'SELECT [accountno], [COMPANY], [CREATEON], [CREATEAT] FROM [CONTACT1$]')
SELECT [accountno], [COMPANY], [CREATEON], [CREATEAT] FROM CONTACT1
4

1 回答 1

1

也许这些链接会有所帮助(一般来说,似乎没有真正的解决方案,而是解决方法)

于 2012-12-12T14:52:11.763 回答