Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да изхвърлим всички наши изображения от поле VARBINARY(MAX) в SQL Server 2008 във файловата система?

Разбрах го благодарение на това публикация ...

SET NOCOUNT ON

DECLARE @IdThumbnail INTEGER,
        @MimeType VARCHAR(100),
        @FileName VARCHAR(200),
        @Sqlstmt varchar(4000)


DECLARE Cursor_Image CURSOR FOR
    SELECT a.IdThumbnail
    FROM tblThumbnail a
    ORDER BY a.IdThumbnail

OPEN Cursor_Image
    FETCH NEXT FROM Cursor_Image INTO @IdThumbnail

    WHILE @@FETCH_STATUS = 0
    BEGIN

        -- Generate the file name based upon the ID and the MIMETYPE.
        SELECT @FileName = LTRIM(STR(@IdThumbnail)) + '.png'

        -- Framing DynamicSQL for XP_CMDshell            
        SET @Sqlstmt='BCP "SELECT OriginalImage 
                      FROM Appian.dbo.tblThumbnail 
                      WHERE IdThumbnail = ' + LTRIM(STR(@IdThumbnail)) +
                      '" QUERYOUT c:\Temp\Images\' + LTRIM(@FileName) + 
                      ' -T -fC:\Temp\ImageFormatFile.txt'
        print @FileName
        print @sqlstmt

        EXEC xp_cmdshell @sqlstmt
        FETCH NEXT FROM Cursor_Image INTO @IdThumbnail
    END

CLOSE Cursor_Image
DEALLOCATE Cursor_Image

Моля, обърнете внимание -> трябва да имате форматиран файл за командата BCP. Това е съдържанието на файла и го поставих в c:\Temp (както е отбелязано в BCP командния ред по-горе).

10.0
1
1       SQLIMAGE            0       0       ""   1     OriginalImage                      ""

Последна бележка за този формат на файла .. ТРЯБВА ДА ИМА НОВ РЕД СЛЕД ПОСЛЕДНИЯ РЕД. в противен случай ще получите грешка.

Насладете се!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Case Statement в SQL с помощта на Like

  2. Неуспешно групово вмъкване Грешка при преобразуване на данни при групово зареждане (отрязване)

  3. Записване на ВСИЧКИ заявки в база данни на SQL Server 2008 Express?

  4. Проблеми с репликацията на транзакции на SQL Server

  5. 3 начина за преброяване на броя на системните таблици в база данни на SQL Server