8

我试图弄清楚如何使用 Transact SQL 将 .JPG 文件插入到图像类型的 SQL Server 2000 数据库字段中。谢谢。

4

3 回答 3

9

使用开放式设置:

INSERT MyTable (ImageColumnName) 
SELECT BulkColumn FROM OPENROWSET (BULK 'c:\myjpeg.jpg', SINGLE_BLOB) AS X

已编辑哎呀,您使用的是 2000 - 不支持以前的解决方案。您必须使用 WRITETEXT:

CREATE TABLE MyTable 
(
    ID INT PRIMARY KEY IDENTITY (1,1), 
    ImageColumnName IMAGE NULL
)
GO

-- must insert a dummy value into the image column for TEXTPTR 
-- to work in next bit
DECLARE @RowId INT
INSERT MyTable (ImageColumnName) VALUES (0xFFFFFFFF)
SELECT @RowId = SCOPE_IDENTITY()

-- get a pointer value to the row+column you want to 
-- write the image to
DECLARE @Pointer_Value varbinary(16)
SELECT @Pointer_Value = TEXTPTR(ImageColumnName)
FROM MyTable
WHERE Id = @RowId

-- write the image to the row+column pointer
WRITETEXT MyTable.ImageColumnName @Pointer_Value 'c:\myjpeg.jpg'
于 2009-07-31T19:41:28.157 回答
2

有一个名为 textcopy.exe 的工具,您可以在 MSSQL\Binn 下找到它或使用 SQL Server 2000 SP4 获取它

Alexander Chigrik 为使用 SQL 查询编写了一个很好的存储过程:

http://www.mssqlcity.com/Articles/KnowHow/Textcopy.htm

于 2011-05-31T09:23:29.270 回答
0

本教程中的存储过程对我有用:

text、ntext 和 image 的简要教程

于 2011-11-08T22:40:27.680 回答