我正在尝试使用此t-sql将数据从表直接保存到服务器文件系统:
DECLARE @ID int
DECLARE @command varchar(1000)
DECLARE @Name varchar(100)
DECLARE @FileName varchar(100)
DECLARE MyCursor CURSOR FOR
SELECT Id, [FileName] FROM FilesTable
OPEN MyCursor
FETCH NEXT FROM MyCursor
INTO @ID, @Name
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @FileName = 'd:\Temp\' + convert(varchar(200), @Name)
SET @command = 'bcp "SELECT FileBytes FROM FilesTable WHERE ID = ' + convert(varchar(18), @Id) + '" queryout "' + @FileName + '" -T -n'
EXEC master..xp_cmdshell @command, no_output
FETCH NEXT FROM MyCursor
INTO @Id, @Name
END
CLOSE MyCursor
DEALLOCATE MyCursor
该表填充了可靠的数据。使用C#程序访问此数据有效。 我确实配置了高级选项,允许使用xp_cmdshell 当我运行此查询时,我没有收到任何错误,但没有写入文件。 我也没有在日志中看到任何内容,(也许我正在寻找错误的位置?)
我做错了什么?或者我可以做些什么来制作“引擎盖下”?
答案 0 :(得分:0)
基于Patrick的评论和fastest way to export blobs from table into individual files中的答案,我能够将图像存储在我的文件服务器上。
我们最终编写了一个类似于给定的CLR函数。