SQL - 使用变量而不是字符串路径的 OPENROWSET
SQL - OPENROWSET with variable instead of string path
我有一个在没有变量的情况下运行的查询。它按预期工作:
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK 'C:\xml\hamlet.xml', SINGLE_BLOB) AS x;
但是当我添加一个变量时。它不起作用(我用一个变量替换了一个字符串)。我收到此错误 => '@path' 附近的语法不正确。
DECLARE @path varchar(50) = 'C:\xml\hamlet.xml';
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK @path, SINGLE_BLOB) AS x;
有人知道这里出了什么问题吗?
参数化动态 SQL 查询可能不起作用。尝试明确连接路径:
DECLARE @path varchar(50) = 'C:\xml\hamlet.xml',
@sql nvarchar(max)= ''
set @sql = '
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK ''' + @path +''', SINGLE_BLOB) AS x;'
exec sp_executesql @sql,N''
我有一个在没有变量的情况下运行的查询。它按预期工作:
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK 'C:\xml\hamlet.xml', SINGLE_BLOB) AS x;
但是当我添加一个变量时。它不起作用(我用一个变量替换了一个字符串)。我收到此错误 => '@path' 附近的语法不正确。
DECLARE @path varchar(50) = 'C:\xml\hamlet.xml';
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK @path, SINGLE_BLOB) AS x;
有人知道这里出了什么问题吗?
参数化动态 SQL 查询可能不起作用。尝试明确连接路径:
DECLARE @path varchar(50) = 'C:\xml\hamlet.xml',
@sql nvarchar(max)= ''
set @sql = '
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK ''' + @path +''', SINGLE_BLOB) AS x;'
exec sp_executesql @sql,N''