SQL Server 2008: как вставить одно изображение для каждой записи в таблице? - PullRequest
1 голос
/ 03 ноября 2010

В моем проекте SQL Server Management Studio 2008 я создал таблицу с именем

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

с 3 записями:

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

Я хочу добавить одно изображение для каждой записи в моемТаблица.Следующий запрос для вставки изображения, например, для jon:

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

выдает сообщение об ошибке " Неверное имя столбца 'catalogId'. "

Что такоеправильный запрос?

Большое спасибо заранее, Грег

Ответы [ 2 ]

6 голосов
/ 03 ноября 2010

Поскольку у вас уже есть записи, используйте UPDATE вместо INSERT

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

(также не проверено)

3 голосов
/ 03 ноября 2010

Похоже, вы хотите обновить строки, а не вставлять новые. Попробуйте (не проверено):

UPDATE Catalog set catalogImage = (SELECT BulkColumn FROM OPENROWSET( Bulk 'C:\images\jon.bmp', SINGLE_BLOB) AS BLOB) WHERE catalogId = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...