TSQL-вставка в таблицу с массовой колонкой - требуется две вставки массовой колонки в одну строку

TSQL-вставка в таблицу с массовой колонкой - требуется две вставки массовой колонки в одну строку

Мне нужно выполнить запрос с двумя вставками массовых столбцов в одну строку.

Я стараюсь:

Тем не менее, я получаю сообщение об ошибке: Неверное имя объекта "BulkColumn". Это просто проблема синтаксиса или это более фундаментальное правило (например, можно добавить только один массовый столбец на оператор)?

Пример: в окне редактирования SSMS.

INSERT INTO [table1] ([id1], [bulk1],[bulk2] 
SELECT '123',
 BulkColumn 
FROM Openrowset( Bulk 'C:\bulkDir1\a1.jpg', Single_Blob) as a1,
BulkColumn 
FROM Openrowset( Bulk 'C:\bulkDir2\b1.jpg', Single_Blob) as a2

Он говорит (в "волнистой ошибке" в окне редактирования SSMS.):
Неверное имя объекта 'BulkColumn'

1 ответ

Решение

Вы можете сделать это таким образом, ваш синтаксис немного отличается, чтобы получить оба столбца:

CREATE TABLE table1(id1 nvarchar(60),   
  [bulk1] varbinary(max), [bulk2] varbinary(max));  
GO  

INSERT INTO table1([id1], [bulk1],[bulk2])   
   SELECT 
    '123' AS FileName,    
     pic1.BulkColumn ,
     pic2.BulkColumn
  FROM OPENROWSET(BULK N'C:\test\a1.jpg', SINGLE_BLOB) AS pic1
  inner join OPENROWSET(BULK N'C:\test\b1.jpg', SINGLE_BLOB) AS pic2
    on 1=1
Другие вопросы по тегам