要實現動態查詢,可以使用變量將查詢語句存儲在變量中,然后使用該變量作為參數傳遞給openrowset函數。
以下是一個示例:
DECLARE @query NVARCHAR(MAX)
DECLARE @filepath NVARCHAR(MAX)
SET @filepath = 'C:\data\example.csv'
SET @query = 'SELECT * FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
''Text;Database=' + @filepath + ';HDR=Yes'',
''SELECT * FROM [example.csv]'')'
EXEC(@query)
在這個示例中,我們定義了一個變量@query來存儲查詢語句,然后將文件路徑存儲在另一個變量@filepath中。然后,我們使用這兩個變量來構建動態查詢,并使用EXEC函數來執行這個查詢。
請注意,使用動態查詢時要格外小心,因為它可能會引起SQL注入攻擊。確保對輸入進行適當的驗證和清理,以防止不良行為。