2013-10-31 1 views
0

유형 (이미지)이있는 열이있는 테이블에 이미지를 삽입하려고합니다. 여기에 내가 뭘하려 :SQL 서버 데이터베이스에서 이미지 삽입 및 가져 오기

내가 알고 싶어
INSERT INTO tblDDPhotos(ID, img) 
VALUES (1, SELECT * FROM 
OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) as imagefile)` 

,

  1. 우리가 어떻게 덩어리에서 이미지를 삽입 않습니다.
  2. 어떻게 이미지에 액세스하고 검색 할 수 있습니까?
  3. 서버의 폴더에 이미지를 저장하기 위해 이미지를 DB에 저장하는 단점은 무엇입니까?

답변

1

당신은 당신의 INSERT 문에서 VALUESSELECT 접근 방식을 혼합 할 수 없습니다 - 하나 또는 다른 사용하지만, 당신이 그들을 혼합 할 수 없습니다.

DECLARE @FileContents VARBINARY(MAX) 

SELECT @FileContents = BulkColumn 
FROM OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) as imagefile) 

INSERT INTO tblDDPhotos(ID, img) 
VALUES (1, @FileContents) 

또는 다른 방법을 사용하는 것입니다 :이 작업을 수행하는

그래서 한 가지 방법은 사용하는 것입니다

INSERT INTO tblDDPhotos(ID, img) 
    SELECT 1, BulkColumn 
    FROM OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) 

피크 중 접근 방식은 더 잘 맞는 - 모두가 동일하게 작동합니다.

사이드 노트 : ntext, textimage 데이터 형식은 이후 버전의 SQL Server에서 제거됩니다. 새로운 개발 작업에서는 이러한 데이터 유형을 사용하지 말고 현재 사용중인 응용 프로그램을 수정하십시오. 대신 nvarchar(max), varchar(max)varbinary(max)을 사용하십시오.

See details about this here

+0

감사합니다. 하지만이 이미지가 다른 인스턴스에 있다면 제대로 작동하지 않을 것입니다. 그것을위한 어떤 방법이 있습니까? –

+0

@NevilleNazerane : * 다른 인스턴스 *는 무엇을 의미합니까? –

관련 문제