Try something like this. Please test it.
DECLARE @folder varchar(500) = 'C:\testing'
DECLARE @DOSCommand varchar(1024); SET @DOSCommand = 'dir ' + @folder +'\' + ' /A-D /B'
IF OBJECT_ID('tempdb..#myFileList') IS NOT NULL DROP TABLE #myFileList
CREATE TABLE #myFileList (FileNumber INT IDENTITY,[FileName] VARCHAR(256))
INSERT INTO #myFileList([FileName]) EXEC MASTER.dbo.xp_cmdshell @DOSCommand
SELECT * FROM #myFileList where fileName is not null
---------------
DECLARE @i int, @filename varchar(200)
SET @i = 1
WHILE (@i <= (select max(FileNumber) from #myFileList))
BEGIN
DECLARE @SQL varchar(MAX)
SELECT @filename= [FileName] from #myFileList WHERE FileNumber = @i
SELECT @SQL =
'INSERT INTO images (image_name, image_data)
SELECT
' + convert(nvarchar(5), @i) + ' AS image_name,
BulkColumn FROM OpenRowSet ( Bulk ''C:\DB\' + @filename + ', Single_Blob) AS image_data'
PRINT (@SQL)
SET @i = @i + 1
END
GO
----------------------------
DROP TABLE #myFileList
Regards, RSingh
No comments:
Post a Comment