如何在SQL中的批量加载命令中传递字符串变量
我想在SQL批量加载中将文件名作为变量传递。但是我得到了一个语法错误。如果有人能帮忙,那就太好了。下面是我写的代码如何在SQL中的批量加载命令中传递字符串变量,sql,sql-server-2008,Sql,Sql Server 2008,我想在SQL批量加载中将文件名作为变量传递。但是我得到了一个语法错误。如果有人能帮忙,那就太好了。下面是我写的代码 DECLARE @XML AS XML,@File VARCHAR(200) SELECT @File='C:\xyz.xml' SELECT @XML= CONVERT(XML, BulkColumn) FROM OPENROWSET(BULK @File, SINGLE_BLOB) AS x 我不能像BULK“C:\xyz.xml”那样硬编码@File,因为文件名会经常更改。
DECLARE @XML AS XML,@File VARCHAR(200)
SELECT @File='C:\xyz.xml'
SELECT @XML= CONVERT(XML, BulkColumn) FROM OPENROWSET(BULK @File, SINGLE_BLOB) AS x
我不能像BULK“C:\xyz.xml”那样硬编码@File,因为文件名会经常更改。您不能将其参数化。因此,请使用动态SQL
DECLARE @XML AS XML, @File VARCHAR(200);
DECLARE @SQL nvarchar(max);
SET @File='C:\xyz.xml';
SET @SQL = 'SELECT @XML= CONVERT(XML, BulkColumn) FROM OPENROWSET(BULK ''' + @File + ''', SINGLE_BLOB) AS x';
EXEC sys.sp_executesql @SQL, N'@XML xml', @XML;
编辑您的答案,因为它没有给出@XML值
DECLARE @XML AS XML, @File VARCHAR(200);
DECLARE @SQL nvarchar(max);
SET @File='C:\xyz.xml';
SET @SQL = 'SELECT @XML_OUT= CONVERT(XML, BulkColumn) FROM OPENROWSET(BULK ''' + @File + ''', SINGLE_BLOB) AS x';
EXEC sys.sp_executesql @SQL, N'@XML xml OUT', @XML_OUT=@XML OUTPUT;
啊!!!我换了标签。对不起,标签错了@霍布斯非常喜欢指针。我完全绝望了。但我需要编辑答案。但仍然是1+:)@gbn