Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara membuang semua gambar kami dari bidang VARBINARY (MAX) di SQL Server 2008 ke sistem file?

Saya telah mengetahuinya berkat ini posting ...

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

Harap dicatat -> Anda harus memiliki file format, untuk perintah BCP. Ini adalah isi dari file dan saya telah menempatkannya di c:\Temp (seperti yang disebutkan pada baris perintah BCP di atas).

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

Catatan terakhir tentang format file itu.. HARUS ADA LINE BARU SETELAH LINE TERAKHIR. jika tidak, Anda akan mendapatkan kesalahan.

Selamat menikmati!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 Cara Mendapatkan Job Steps dari SQL Server Agent Job (T-SQL)

  2. Menggunakan tipe data tanggal sql dan EF4

  3. Cara mengekstrak dari data nilai DateTime tanpa detik

  4. Fungsi SQL Server ROUND():Untuk Apa dan Mengapa Anda Harus Peduli?

  5. Kapan saya harus menggunakan variabel tabel vs tabel sementara di server sql?