2017-06-22 24 views
1

Ich habe diese SQL-Skript tht Arbeit richtig:SQL SERVER - OPENROWSET mit filepath-Parameter

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 

Jetzt brauche ich den XML-Dateipfad mit einer Variablen zu übergeben.

Wie muss ich das Skript ändern?

Dank

Antwort

1

Sie dynamische SQL verwenden können, unterstützen:

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 
+0

Dank, es funktioniert! – DarioN1

Verwandte Themen