【问题标题】:how to insert data, using select in excel如何在excel中使用select插入数据
【发布时间】:2014-02-12 05:46:28
【问题描述】:

我有数据大数据要插入到excel中,所有数据都来自sql server,我想准备一次插入一堆记录的插入查询..

INSERT INTO [Sheet1$] (ID,Name)
SELECT '1' AS ID,'XYZ' AS Name UNION
SELECT '1' AS ID,'XYZ' AS Name UNION
SELECT '1' AS ID,'XYZ' AS Name

但它会给我一个像

这样的错误
Query input must contain at least one table or query.

【问题讨论】:

    标签: c# sql-server excel oledb


    【解决方案1】:

    试试这个选项。

    INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\testing.xlsx;;HDR=YES;IMEX=1', 'SELECT Id, Name FROM [Sheet1$]')
    SELECT '1' AS ID,'XYZ' AS Name
    UNION ALL
    SELECT '1' AS ID,'XYZ' AS Name 
    UNION ALL
    SELECT '1' AS ID,'XYZ' AS Name
    

    这里我假设你已经在你的 sql server 中启用了 Ad Hoc Distributed Queries 选项。

    【讨论】:

    • 我已经配置了 Exec sp_configure 'show advanced options', 1;重新配置; GO Exec sp_configure 'Ad Hoc 分布式查询', 1;重新配置; GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1; GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1; GO,但仍然出现错误,如 Msg 7399,Level 16,State 1,Line 3 链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”报告错误。提供者没有提供有关错误的任何信息。
    • 这里我使用的是 Microsoft.ACE.OLEDB.12.0 bcs 我已经在我的系统中安装了 Microsoft Office 2007。您可以尝试使用 Microsoft.Jet.OLEDB.4.0 并告诉我...
    • 我在我的系统上安装了 Office 2010 64 位,所以 OLEDB4​​.0 不适合我。我还安装了 Microsoft Access Engine 64 位,我的系统是 Win 7 64 位和我的 SQL Server 2008是64位
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多