将查询结果导出为ex​​cel

时间:2011-04-15 18:10:33

标签: sql-server-2005

我正在尝试执行下面的sql,但我收到了“Invalid object name '.Sheet1$'.

INSERT INTO OPENDATASOURCE 
    ('Microsoft.Jet.OLEDB.4.0', 
    'Database=c:\test.xls;Extended Properties=Excel 8.0')..[Sheet1$])
    SELECT col1 FROM table;

它在mssql 2005中。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果您启用了xp_cmdshell,则可以执行此操作以导出到分隔的文本文件,该文件将在Excel中打开。

EXEC xp_cmdshell 'SQLCMD -S [SERVERNAME] -d [DBNAME] -o "C:\Output.txt" -s "," -U "[USERNAME]" -P "[PASWORD]" -Q "SELECT TOP 10 * FROM table"';

答案 1 :(得分:0)

根据this posting(以及Google为我找到的一些其他示例),您需要在表格前面加上三个点:8.0)... [Sheet1 $]。 (不要问我为什么)。

已添加:The German translationthis提供了Excel访问的完整示例:

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;