Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
Sql server 存储过程使用Openrowset选择Excel文件中的第一行_Sql Server_Excel_Stored Procedures - Fatal编程技术网

Sql server 存储过程使用Openrowset选择Excel文件中的第一行

Sql server 存储过程使用Openrowset选择Excel文件中的第一行,sql-server,excel,stored-procedures,Sql Server,Excel,Stored Procedures,我正在将mssql查询导出到excel文件,该文件的头两行作为标题。第一行标题是一个跨A1:K1的单元格。第二行标题有11个单元格,跨度为A2:K2。我想要一个openrowset来更改标题,另一个openrowset来填充excel文件 这不起作用: EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT Top 1 * FROM [Sheet1$]'') SELECT

我正在将mssql查询导出到excel文件,该文件的头两行作为标题。第一行标题是一个跨A1:K1的单元格。第二行标题有11个单元格,跨度为A2:K2。我想要一个openrowset来更改标题,另一个openrowset来填充excel文件

这不起作用:

    EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT Top 1 * FROM [Sheet1$]'') 
SELECT Top 1 [Customer] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + ''' AND (Status = ''C'' OR Status = ''I'')')
这是第二部分,它确实起作用:

    EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT * FROM [Sheet1$A3:K3]'') 
SELECT [ITEMNUMBER],[CustomerSKU],[ITEM_DESCRIPTION],[CASEPACK],[Total Qty],[Case Price],[CASEPACK]*[Total Qty],[Total Qty]*[Case Price],[Unit Price],[PreTicketInfo],[Quote #] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + ''' AND (Status = ''C'' OR Status = ''I'')')
谢谢

EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT Top 1 * FROM [Sheet1$A1]'')  
SELECT Top 1 [Customer] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + ''' AND (Status = ''C'' OR Status = ''I'')')

试试这个。Excel将合并单元格的值保存在合并单元格范围的左上角,因此,当拉取值数据时,跨越A1:K1的合并拼写将以编程方式称为单元格A1

尝试上述操作并得到以下消息:OLE DB提供程序Microsoft.Jet.OLEDB.4.0 for linked server null返回消息Microsoft Jet数据库引擎找不到对象“Sheet1$A1”。确保对象存在,并且正确拼写其名称和路径名。。Msg 7350,级别16,状态2,第1行无法从OLE DB提供程序Microsoft.Jet.OLEDB.4.0获取链接服务器null的列信息。尝试此操作:EXEC'INSERT INTO OPENROWSET'++@provider+','++@ExcelString+',从[Sheet1$]中选择TOP 1*,从[ORDER SUMMERY]中选择TOP 1[Customer],其中[ORDER]='+@OrderNumber+'和Status=C或Status=I'并得到以下结果:插入错误:提供的值的列名或数量与表定义不匹配。