2009-07-31 16 views

Trả lời

9

Sử dụng OPENROWSET:

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

EDITED Rất tiếc, bạn đang sử dụng 2000 - giải pháp trước đó không được hỗ trợ. Bạn phải sử dụng 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' 
+0

đó là những gì tôi đã thử nhưng tôi nghĩ rằng đó là cú pháp sql server 2005, dường như không hoạt động vào năm 2000 – Kate

2

Có một công cụ gọi là textcopy.exe Bạn có thể tìm thấy nó dưới MSSQL \ Binn hoặc làm cho nó với SQL Server 2000 SP4

Alexander Chigrik đã viết một thủ tục lưu trữ tốt đẹp cho usinig nó với truy vấn SQL:

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

Các vấn đề liên quan