Quel est le moyen le plus simple de prévisualiser les données d'une colonne d'images?
J'ai quelques colonnes avec image
type de données et je veux aperçu (ou parcourir) les données dans ces tables. Lorsque j'utilise Select top 1000 rows
dans SQL Server Management Studio, la valeur de colonnes de l'image est affichée au format hexadécimal. Quelle est la meilleure façon de prévisualiser les images depuis l'hex-valeur n'est pas utile pour moi?
PS.: la base de données n'est pas sous mon contrôle, de sorte qu'un changement de type de données n'est pas une option.
source d'informationauteur André
Vous devez vous connecter pour publier un commentaire.
Je voudrais écrire un proc (ou de la requête; voir ci-dessous) pour exporter le fichier binaire dans le fichier système, puis utilisez une vieille rayon photo de l'utilitaire de gestion (c'est à dire la Visionneuse de Photos Windows) de prendre un coup d'oeil à ce qui est à l'intérieur.
Si votre habile dans votre fichier de nommage, vous pourriez vous donner suffisamment d'informations sur chaque image dans le nom pour trouver rapidement dans la base de données une fois que vous avez visuellement trouve ce que vous cherchez.
Ici est une proc qui va à l'exportation binaire pour le système de fichiers. Je l'ai modifié à partir de cet exemple de code. Il est non testé mais devrait être très proche du concept. C'est à l'aide BCP pour exporter votre fichier binaire. Consultez ici l' plein de docs sur l'utilitaire BCP.
Le proc vous donne également la possibilité d'exporter le tout dans le tableau, ou d'une seule ligne basé sur le passé primarykey. Il utilise un curseur (beurk), ainsi que certains sql dynamique (beurk, beurk), mais parfois, tu dois faire ce que tu dois faire.
C'est tout en supposant bien sûr que ce qui est stocké dans votre colonne Image est en fait une image et non pas un autre type de fichier. J'espère que si c'est une image, vous savez aussi le type, bmp, jpg, png, gif, etc.
Si vous ne voulez pas les tracas ou la réutilisation d'une pleine soufflé proc essayer seule requête comme ceci:
Si vous avez LinqPad installé, la prévisualisation des images est simple. Requête de votre dossier, de convertir les données binaires dans une image, puis de faire un dump de la sortie dans la fenêtre d'aperçu.
Edit: Si vous n'êtes pas au courant, LinqPad est un utilitaire gratuit qui peut être utilisé pour beaucoup de choses, comme un remplacement pour la gestion de studio. La plupart du temps je l'utilise comme un bloc-notes pour .Net pour jeter des programmes, le code de test, et des échantillons.
Voici le résultat:
La image type n'est pas fait pour stocker des images, c'est juste "données binaires de longueur variable'. Ce type est obsolète et vous devez maintenant utiliser varbinary(max) longueur variable des données binaires.
Depuis le Serveur SQL n'a pas connaissance de ce type de données binaires a été stocké (.zip, .exe, .jpg, .quoi que ce soit) il n'est pas surprenant de Gestion de Studio n'est pas de fournir un aperçu.
Vous avez certainement ne pouvez pas obtenir un aperçu de ces types de données dans la Gestion de Studio, mais j'aime bien la solution donnée par @RTomas.
Je ne sais pas d'une façon d'accomplir ceci dans Management Studio. Vous seriez probablement mieux de serveur de l'écriture d'une application simple qui permet d'interroger la base de données, puis de convertir l'hex dans le bon type d'image (.jpg, .png, etc). Il y a aussi des commercial applications qui le fera pour vous.
Il est un très bon complément pour SSMS SSMSBoost qui offre beaucoup de fonctionnalités utiles, et bien sûr, la façon la plus simple de prévisualiser les images stockées dans SQL(au moins à mon avis)
NOTE : Vous devez redémarrer SSMS après l'installation de ce complément.
De l'installer et de profiter de la prévisualisation des images juste avec : clic Droit > Visualiser Comme > l'Image