如何在SQL中的BULK LOAD命令中传递字符串变量

时间:2014-12-10 08:08:05

标签: sql sql-server-2008

我想将文件名作为SQL BULK加载中的变量传递。但我收到语法错误。如果有人可以帮助那将是伟大的。下面是我写的代码。

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那样硬编码@File C:\ xyz.xml'因为文件名会经常更改。

2 个答案:

答案 0 :(得分:3)

您无法对其进行参数化。所以使用动态SQL

答案 1 :(得分:0)

编辑答案,因为它没有给出@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;