Comment enregistrer une image à partir de SQL Server dans un fichier à l'aide de SQL

Question

Dans SQL Server 2005, j'ai un tableau avec des images (type de données: à l'image). À l'aide de SQL, comment puis-je enregistrer une image dans un fichier (sur le même serveur qui exécute SQL Server). Si je dois le faire, je vais utiliser SQL CLR, mais je veux éviter si possible.

Fond

Je veux un travail SQL Server pour exécuter les pas d'un calendrier qui appelle un proc qui va envoyer des e-mails avec des images incorporées à l'aide de SQL Serveur de Messagerie de Base de données comme ceci:

exec msdb.dbo.sp_send_dbmail
@profile_name = 'MyProfile',
@recipients = '[email protected]',
@subject = 'hello',
@file_attachments = 'C:\MyLogo.gif',
@body=N'<p>Image Test</p><img src="MyLogo.gif" /><p>See image there?</p>', 
@body_format = 'HTML';

Que SQL fonctionne, mais j'ai besoin de pour obtenir l'image enregistrée dans un fichier en premier. Si je peux obtenir de l'image directement sur l'e-mail sans l'enregistrer dans un fichier, c'est bien, mais il doit être intégré à l'email et je veux seulement utiliser SQL.

Êtes-vous seulement à l'aide de T-SQL pour accéder aux données? En d'autres termes, une autre langue (comme le VB ou C#) être utilisée à tout moment pendant le processus?
Pas de. Un travail SQL Server va exec un proc qui va (je l'espère) envoyer l'e-mail intégré à l'image. Donc, pas d'autres langues, à moins que je n'ai pas le choix.
Vous pouvez essayer à la sortie de la colonne binaire de fichier avec xp_cmdshell comme ceci: EXEC master..xp_cmdshell'bcp "SÉLECTIONNER une image à PARTIR EmailTable" queryout "c:\mylogo.gif"'
possible dupe - stackoverflow.com/questions/35974/...

OriginalL'auteur Craig HB | 2009-11-04