插入blob时是否可以向路径添加变量 我已经尝试过这段代码,但不幸的是它无法正常工作:(
declare @i int
declare @test varbinary(max)
set @i=1
set @test=(select * FROM OPENROWSET
(BULK ''K:\test\1'+'@'+'.xml'', SINGLE_BLOB)myfile)
insert tab1 values (@test)
A1 @大卫 嗨大卫, 感谢您的意见。 Blob输出显示了我想要实现的内容,但是我需要将该输出@blob插入到表中,它完全不同。
屏幕1的代码
declare @i int = 2
declare @file varchar(2000) = concat('C:\xml\EmployeeWorkTime',@i,'.xml');
declare @blob varbinary(max)
declare @sql nvarchar(max) = concat(N'select @blob = BulkColumn FROM
OPENROWSET(BULK ''',@file,''', SINGLE_BLOB) myfile')
insert [dbo].[tab1] values (convert(Varbinary(MAX),@sql))
A2 选择@BLOB之后应该插入并解决我的问题:)再次感谢@David
(...)
select @blob
insert tab1 values(@blob)
答案 0 :(得分:2)
OPENROWSET不支持文件名的表达式或变量。您可以使用动态SQL。像这样:
declare @i int = 1
declare @file varchar(2000) = concat('K:\test\file',@i,'.xml');
--set @file = 'c:\temp\a.xml'
declare @blob varbinary(max)
declare @sql nvarchar(max) = concat(N'select @blob = BulkColumn FROM OPENROWSET(BULK ''',@file,''', SINGLE_BLOB) myfile')
exec sp_executesql @sql, N'@blob varbinary(max) output', @blob = @blob output
select @blob