我正在尝试在 SQL Openrowset 命令中使用一个名为 filepath 的变量。我知道它无法显式接受变量,因此我需要使用动态 SQL。
目前有效的内容 -
SELECT @file_stream = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET(BULK 'C:\Temp\print4.pdf', SINGLE_BLOB) AS x
然而,如果我尝试使用我的变量filepath
declare @file_stream VARBINARY(MAX)
declare @filePath NVARCHAR(128)
set @filePath = 'C:\Temp\print4.pdf'
set @command = N'SELECT @file_stream = CAST(bulkcolumn AS varbinary(MAX))
from OPENROWSET(BULK ' + @filePath + ',
SINGLE_BLOB) ROW_SET'
EXEC sp_executesql @command, @filePath, @file_stream;
我遇到了错误'Msg 137, Level 15, State 2, Line 15 Must declare the scalar variable "@filePath"。'
我确定这是一个语法问题,但还没有找到正确的格式。