2010-11-03 10 views
1

Dans mon projet SQL Server Management Studio 2008 I ont créé une table appeléeSQL Server 2008: comment insérer une image par entrée dans une table?

Catalog (
    catalogId NOT NULL PRIMARY KEY, 
    catalogName VARCHAR(20), 
    CatalogImage VARBINARY(MAX) 
    ) 

avec 3 entrées:

catalogId | catalogName | catalogImage 
    1  |  jon  |  NULL 
    2  |  jim  |  NULL 
    3  |  joe  |  NULL 

Je voudrais ajouter une image pour chaque entrée dans ma table. La requête suivante pour insérer une image, par exemple pour jon:

INSERT INTO Catalog (catalogImage) 
SELECT BulkColumn FROM OPENROWSET(Bulk 'C:\images\jon.bmp', SINGLE_BLOB) AS BLOB 
WHERE catalogId=1 

produit le message d'erreur "nom de colonne non valide 'catalogId'."

Quelle est la requête correcte?

Merci beaucoup à l'avance, Greg

Répondre

3

On dirait que vous souhaitez mettre à jour les lignes au lieu d'insérer de nouveaux. Essayez (non testé):

UPDATE Catalog set catalogImage = (SELECT BulkColumn FROM OPENROWSET(Bulk 'C:\images\jon.bmp', SINGLE_BLOB) AS BLOB) WHERE catalogId = 1 
+0

Merci user495812 beaucoup et sunn0! Vous avez tous les deux raison! – Greg

6

Puisque vous avez déjà les entrées utilisez la commande UPDATE au lieu de INSERT

UPDATE Catalog SET catalogImage = 
(SELECT BulkColumn FROM OPENROWSET(Bulk 'C:\images\jon.bmp', SINGLE_BLOB) AS BLOB) 
WHERE catalogId=1 

(non testé aussi)

+0

Merci beaucoup user495812 et sunn0! Vous avez tous les deux raison! – Greg