Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在excel中使用select插入数据_C#_Sql Server_Excel_Oledb - Fatal编程技术网

C# 如何在excel中使用select插入数据

C# 如何在excel中使用select插入数据,c#,sql-server,excel,oledb,C#,Sql Server,Excel,Oledb,我有大量数据要在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 tabl

我有大量数据要在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.
试试这个选项

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中启用了临时分布式查询选项

我已配置Exec sp_配置“显示高级选项”,1;重新配置;GO Exec sp_配置“临时分布式查询”,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;继续,但仍会收到错误,如Msg 7399,级别16,状态1,第3行。链接服务器null的OLE DB提供程序Microsoft.ACE.OLEDB.12.0报告了一个错误。提供商未提供有关错误的任何信息。我使用的是Microsoft.ACE.OLEDB.12.0 bcs,我已在系统中安装了Microsoft Office 2007。您可以尝试使用Microsoft.Jet.OLEDB.4.0并告诉我…我已在系统上安装了64位Office 2010,因此OLEDB4.0不适用于我。。我还安装了64位Microsoft Access Engine,我的系统是Win 7 64位,我的SQL server 2008也是64位