Вставить изображения в два столбца в таблице SQL Server - PullRequest
0 голосов
/ 18 октября 2018

У меня есть таблица с 4 столбцами, подобная этой:

CREATE TABLE SaveFiles
(
    FileID INT,
    Name NVARCHAR(50) NOT NULL,
    Image1 VARBINARY(MAX) NOT NULL,
    Image2 VARBINARY(MAX) NOT NULL,
)

Я пытаюсь вставить изображения в столбцы image1 и image2.

Я могу вставить толькоодно изображение в столбце image1, я также пытался вставить столбец image2 в таблицу.Я использовал приведенный ниже запрос для вставки изображения в image1, но моя цель также вставить image2.

INSERT INTO [dbo].[SaveFiles] ([FileID], Name, Files)
    SELECT  
        1, 'Home Page 2', 
        BulkColumn 
    FROM 
        OPENROWSET(BULK N'D:\LOGOS\Home Page.png', SINGLE_BLOB) image;

Я попытался вставить два столбца, как показано ниже.Но я не могу вставить, пожалуйста, помогите мне вставить 4 столбца, 1 int, 2 nvarchar, VARBINARY, VARBINARY в таблицу.

INSERT INTO [dbo].[SaveFiles] ([FileID], Name, Files)
    SELECT  
        1, 'Home Page 2', 
        BulkColumn 
    FROM 
        OPENROWSET(BULK N'D:\LOGOS\Home Page.png', SINGLE_BLOB) image,
        BulkColumn 
    FROM OPENROWSET(BULK N'D:\LOGOS\Home Page.png', SINGLE_BLOB) image;

Заранее спасибо.

1 Ответ

0 голосов
/ 18 октября 2018

Если вы пытаетесь вставить одно и то же изображение в 2 столбца, вы можете попробовать этот запрос.Вам просто нужно использовать OPENROWSET один раз.

INSERT INTO [dbo].[SaveFiles] ([FileID], Name, Image1, Image2) 
SELECT 
  1, 
  'Home Page 2', 
  image.BulkColumn ,
  image.BulkColumn 
FROM OPENROWSET(BULK N'D:\LOGOS\Home Page.png', SINGLE_BLOB) image

Если вы пытаетесь вставить 2 разных изображения, используйте OPENROWSET дважды, как показано ниже.

INSERT INTO [dbo].[SaveFiles] ([FileID], Name, Image1, Image2) 
    SELECT 
      1, 
      'Home Page 2', 
      (Select BulkColumn FROM OPENROWSET(BULK N'D:\LOGOS\Home Page1.png', SINGLE_BLOB) as img1) ,
      (Select BulkColumn FROM OPENROWSET(BULK N'D:\LOGOS\Home Page2.png', SINGLE_BLOB)  as img2)
...