【发布时间】:2017-04-07 21:47:13
【问题描述】:
我正在尝试使用存储过程插入 FileTable,其中我的 FileStream、FileName、FilePath 将被参数化。我已经尝试过了,但它会引发错误
数据类型 varchar 和 varbinary(max) 在 add 运算符中不兼容
我的存储过程:
@filePath VARCHAR(100),
@fileName VARCHAR(100)
AS
BEGIN
DECLARE @file VARBINARY(MAX)
DECLARE @sql NVARCHAR(max)
SET @sql = 'SELECT'+ @file +' = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET(BULK '+ @filePath +', SINGLE_BLOB) AS x'
EXEC(@Sql);
INSERT INTO dbo.FileStore(name, file_stream)
SELECT @fileName, @file
END
【问题讨论】:
-
你向@file 传递了什么?
-
这是一个错误,我已经更新了问题。
-
我不确定您的目标是什么,但FWIW您不需要将@file 转换为您声明为
convert(VARBINARY(MAX),'+ @file +')的内容@ -
我也刚刚更新了:D
-
错误仍然存在?
标签: sql .net sql-server stored-procedures parameters