gpt4 book ai didi

sql - 如何将图像添加到 Azure SQL 数据库?

转载 作者:行者123 更新时间:2023-12-02 06:35:12 25 4
gpt4 key购买 nike

我最近一直在重写我的数据库,希望它能够接受图像。然而,对于 Azure,情况要棘手得多,因为直接从 PC 添加图像是不可能的,最终会出现以下错误:

INSERT INTO [Lesson_Content] (Lesson_Language, Lesson_Text, Id_Lesson, Lesson_Image) SELECT 'Polish','sample text', 4, BulkColumn
FROM OPENROWSET
(
Bulk 'C:\Users\ogryz\Desktop\swedish.png', SINGLE_BLOB
)AS Lesson_Image

Cannot bulk load because the file "C:\Users\ogryz\Desktop\swedish.png" could not be opened. Operating system error code 997(Overlapped I/O operation is in progress.).

所以我不得不求助于存储 blob,但是我不知道如何通过 SQL 而不是通过网站向其中添加图像。

所以,我实际上有两个问题:

  1. 如何通过sql将图像添加到blob存储?
  2. 是否有比使用前面提到的 blob 更好的方法将图像添加到 Azure SQL 数据库?

最佳答案

How do I add an image to Azure SQL Database?

根据Microsoft Document不支持将文件从本地计算机加载到 Azure SQL 数据库。

enter image description here

同意CSharpRocks的观点,图像应该保存到blob存储中,并且数据库还应该包含该图像的blob URL,或者您可以将图像存储在blob存储中,然后在SQL数据库中读取它。

要实现这一目标,

  • 首先将图像上传到 Blob 存储中。 enter image description here
  • 然后为该 Blob 存储创建外部数据源,并将图像从 Blob 存储插入到 Azure sql。

示例代码:

--create a master key

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'YourStrongPassword';
GO

--create a scoped credential

CREATE DATABASE SCOPED CREDENTIAL sampleblobcred1
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'SAS Token';

--create a external data source

CREATE EXTERNAL DATA SOURCE samplestorageblob
WITH ( TYPE = BLOB_STORAGE,
LOCATION = 'https://StorageAccountName.blob.core.windows.net'
, CREDENTIAL= sampleblobcred1
);

--Insert image from blob storage

INSERT INTO DatabaseImageTable (col1, col2)VALUES (1, (Select BulkColumn FROM OPENROWSET(
BULK 'image.jpg',
DATA_SOURCE = 'samplestorageblob', SINGLE_BLOB) AS ImageFile));

关于sql - 如何将图像添加到 Azure SQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76086593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com