要實(shí)現(xiàn)動(dòng)態(tài)查詢,可以使用變量將查詢語句存儲(chǔ)在變量中,然后使用該變量作為參數(shù)傳遞給openrowset函數(shù)。
以下是一個(gè)示例:
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)
在這個(gè)示例中,我們定義了一個(gè)變量@query來存儲(chǔ)查詢語句,然后將文件路徑存儲(chǔ)在另一個(gè)變量@filepath中。然后,我們使用這兩個(gè)變量來構(gòu)建動(dòng)態(tài)查詢,并使用EXEC函數(shù)來執(zhí)行這個(gè)查詢。
請(qǐng)注意,使用動(dòng)態(tài)查詢時(shí)要格外小心,因?yàn)樗赡軙?huì)引起SQL注入攻擊。確保對(duì)輸入進(jìn)行適當(dāng)?shù)尿?yàn)證和清理,以防止不良行為。