我正在尝试执行下面的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中。
感谢任何帮助。
答案 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 translation的this提供了Excel访问的完整示例:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;