FOTOS是一张桌子 @pathcompleto是文件的完整路径
set @insertvalues = 'insert into FOTOS values(@count, (SELECT BulkColumn FROM Openrowset( Bulk ''' + @pathcompleto + ''', Single_Blob) as img) , @url)'
exec(@insertvalues)
背景: 这是一个循环和其他东西,但问题是他说@count没有声明,但它是。我相信这是因为动态sql(如果我删除@count,@ url也是一个错误)
我如何使这项工作?它可能适用于sp_executesql,但我不明白它在这里使用
答案 0 :(得分:1)
您想要sp_executesql
:
set @insertvalues = '
insert into FOTOS
SELECT @count, BulkColumn, @url
FROM Openrowset( Bulk ''' + @pathcompleto + ''', Single_Blob) as img';
exec sp_executesql @insertvalues, N'@count int, @url varchar(max)',
@count = @count, @url = @url;
我还将INSERT
简化为简单的INSERT . . . SELECT
。
注意:我不知道列的实际类型是什么。以上只是一个有根据的猜测。
此外,在使用INSERT
时,您应该始终包含列名,除非您真的知道为什么要依赖默认行为。