Bilder von einem SQL Server mit gespeicherten Prozeduren exportieren

Ich verwende Microsoft SQL Server 2012 als DBMS. Dort habe ich meine Datenbank, die Informationen über @ enthälFussballspiele. Jeder Player hat eine Fotografie, und ich muss die Fotos des Players auf meinen Computer exportieren. Ich denke, es ist möglich, dies über TSQL zu tun, sodass ich es vermeiden könnte, meine Anwendung so zu programmieren oder zu bearbeiten, dass nur Fotos exportiert werden.

Hier ist was ich bisher gemacht habe:

MEIN SQL CODE:

EXEC sp_configure 'Erweiterte Optionen anzeigen', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO

EXEC master..xp_cmdshell 'mkdir C: \ ImagesFromSql'

EXEC master..xp_cmdshell 'BCP "SELECT Photo FROM [FootballTeam]. [Dbo]. [Players]" queryout "C: \ ImagesFromSql \ TestImage.jpg" -T -N'

Wie Sie sehen können, wird mein Ordner ImagesFromSql auf "C: \" erstellt. Dort ist auch ein Foto gespeichert. Interessant ist jedoch, dass das Foto 361 MB groß ist. Ist das also wahrscheinlich die Größe aller in der Datenbank enthaltenen Fotos? Und ich frage mich, wie ich in diesem Fall alle Bilder aus der Datenbank exportieren könnte, anstatt nur eines. Ist es möglich, ihre Namen festzulegen, können Sie den Bildnamen als PlayerID festlegen, zum Beispiel 1.jpg, 2.jpg, 3.jpg. ... 650.jpg ...

after @ H.Fadlallah schlug einige Antworten vor:

Es ist unmöglich, ein Vorschaubild anzuzeigen ..:)

Again after @ H.Fadlallah help Ich habe diese Abfrage ausgeführt:

DECLARE @ID als int DECLARE @SQL als varchar (4000)

DECLARE csr CURSOR FÜR SELECT PlayerID FROM [FootballTeam]. [Dbo]. [Players]

OPEN csr

FETCH NEXT FROM csr INTO @ ID

WHILE @@ FETCH_STATUS = 0 BEGIN

SET @SQL = 'BCP "SELECT Photo FROM [FootballTeam]. [Dbo]. [Players] WHERE PlayerID ="' + CAST (@ID als varchar (10)) + 'queryout "C: \ ImagesFromSql \' + CAST (@ID als varchar (10)) + '.jpg "-T -f C: \ ImagesFromSql \ formatfile.fmt'

EXEC master..xp_cmdshell @ SQL

FETCH NEXT FROM csr INTO @ ID

END

CLOSE csr DEALLOCATE csr

Aber jetzt erhalte ich leere Bilder, wahrscheinlich habe ich etwas verpasst. (Die Datei formatfile.fmt wird in denselben Ordnern wie die Bilder erstellt, und ich habe den Binärwert für mein Fotoattribut von 8 auf 0 geändert, wie H.Fadallah mir in einer anderen vorgeschlagen hat Post)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage