2012-07-27 86 views
0

我想將excel的動態URL傳遞給「OPENROWSET」。將excel的動態文件路徑傳遞給「OPENROWSET」

注 - 我將excel文件的返回結果傳遞給光標。 我想通過文件路徑「@excelpath」, 我已經嘗試了很多方法,但它給出的語法錯誤。

ALTER procedure [dbo].[import_excel] 
(
    @excelpath as nvarchar(max) 
) 
as  
begin 
    set nocount on 
    DECLARE insert_cursor CURSOR FOR 
    select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=C:\memberdata.xlsx', [Sheet1$]) 
    OPEN insert_cursor; 
    FETCH NEXT FROM insert_cursor 
     INTO @id_number, @memberName 

    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    -- body of cursor 
     FETCH NEXT FROM insert_cursor 
     INTO @id_number, @memberName 
    END 
    CLOSE insert_cursor; 
    DEALLOCATE insert_cursor; 
END 

回答

3

您必須使用動態SQL構建您的查詢,如this question所示。將查詢中的數據插入永久表中可能最簡單,然後將光標移動到永久表上。這樣可以最大限度地減少需要動態使用的SQL數量。

+0

我覺得這是個好主意。 :) 謝謝 – Abhi 2012-07-27 16:29:51