SQL SERVER - OPENROWSET с параметром filepath

У меня есть этот сценарий SQL, который работает правильно:

INSERT INTO #XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE() 
FROM OPENROWSET(BULK 'C:\temp\test.wordpress.2017-05-22.xml', SINGLE_BLOB) AS x;


SELECT @XML = XMLData FROM #XMLwithOpenXML

Теперь мне нужно передать путь к файлу XML с переменной.

Как мне изменить скрипт?

Благодаря поддержке

1 ответ

Решение

Вы можете использовать динамический SQL:

create table #XMLwithOpenXML(XMLData xml, LoadedDateTime DateTime)

declare @xml xml
declare @filename nvarchar(100)
declare @sql nvarchar(max)

set  @filename ='F:\a.xml'
set  @sql = 'INSERT INTO #XMLwithOpenXML(XMLData, LoadedDateTime) '
set  @sql = @sql +' SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE() '
set  @sql = @sql +' FROM OPENROWSET(BULK ''' + @filename +''', SINGLE_BLOB) AS x;'

EXEC (@Sql)

SELECT @XML = XMLData FROM #XMLwithOpenXML

SELECT @XML

drop table #XMLwithOpenXML
Другие вопросы по тегам