CREATE TABLE dbo.TableName
(ID INT Identity(1, 1)
,NAME VARCHAR(100)
,Image VARBINARY(MAX))
GO
--Import Image to SQL Server
INSERT INTO dbo.TableName
(NAME
,Image
)
SELECT 'Capture1.PNG'
,BulkColumn
FROM Openrowset(BULK 'C:\MyImage.PNG', Single_Blob) AS Image
CREATE TABLE dbo.ImageStore
(ID INT Identity(1, 1)
,[NAME] VARCHAR(100)
,[Image] VARBINARY(MAX))
GO
--Insert image to SQL server table using bulk import.
INSERT INTO dbo.ImageStore
([NAME]
,[Image]
)
SELECT 'Error_image_1.PNG'
,BulkColumn
FROM Openrowset(BULK 'C:\Issue_dataload_two Graphs.PNG', Single_Blob) AS Image
select * from [dbo].[ImageStore]
4条答案
按热度按时间rqmkfv5c1#
下面是一个在SQL Server表中保存Image文件的例子,首先我们需要有一个可以处理Image文件的列。
VARBINARY是一种数据类型,我们可以使用它来存储图像或任何其他类型的文件。让我们创建一个具有Varbinary数据类型的表,然后使用下面的脚本导入图像。
m528fe3b2#
映像 路径 必须 可 由 SQL 服务 器 访问 。 SQL 服务 器 可以 访问 其 服务 器 文件 夹 中 的 文件 。 找到 服务 器 文件 夹 。 文件 夹 名称 以 MSSQLXX.MyDatabaseServer 开头 。 如果 您 尚未 更改 默认 安装 路径 , 则 应该 能够 在 " C : \ Program Files \ Microsoft SQL Server " 中 找到 它 。 将 映像 文件 放在 " C : \ Program Files \ Microsoft SQL Server \ MSSQLXX . MyDatabaseServer \ MSSQL " 中 。
在 sql 中 指定 图像 路径 , 如下 所 示 - 〉 FROM 打开 行 集 ( BULK ' * * C : \ Program Files \ Microsoft SQL Server \ MSSQLXX . MyDatabaseServer \ MSSQL \ MyImage . PNG * *', Single _ Blob ) AS 图像
如果 您 仍然 遇到 错误 消息 " 文件 不 存在 或 您 没有 访问 该 文件 的 权限 " , 请 尝试 将 图像 文件 放在 存储 主 数据 文件 的 DATA 文件 夹 中 。
11dmarpk3#
这会将图像以二进制格式存储在您的数据库中。
zqry0prt4#
您也可以将图像数据粘贴为十六进制字符串。如果您无法访问SQL服务器上的文件系统,这将非常有用。
在十六进制编辑器(如HxD)中打开二进制图像文件(如jpeg),以十六进制格式查看文件。复制十六进制并粘贴到如下查询中--您必须执行“查找/替换”以删除一些空白。