2017-04-20 21 views
0

Visual Studio SQL Server 데이터베이스 프로젝트와 Images 테이블이 있습니다. 이 이미지는 빈 이미지가있는 모든 항목에서 사용되므로 PostDeployment 스크립트에 기본 이미지를 삽입해야합니다. 어떻게이 이미지를 프로젝트에 저장할 수 있으며 스크립트에서 어떻게 액세스 할 수 있습니까?Visual Studio 데이터베이스 프로젝트로 PostDeployment 스크립트로 이미지 삽입

이 이미지를 데이터베이스 프로젝트에 삽입하는 것이 좋습니다. WindowsService 프로젝트와 엔티티 프레임 워크가있는 ASP.NET MVC 프로젝트가 있습니다. 이 다른 2 개의 프로젝트 각각에 초기 검증의 일환으로이 이미지를 삽입해야합니까?

답변

2

이렇게하는 데는 몇 가지 방법이 있습니다.

INSERT INTO testImage (id, myImage) 
SELECT 1, bulkcolumn 
FROM openrowset(BULK 'D:\x\dZLx1.png', single_blob) as myImage 

, 당신은 경로를 추적하려면 여기를 잠재적 인 두통의 몇 가지 필요가있다 :

당신은 같은 것을 사용하여 파일에서 이미지를 삽입 할 수 있습니다

create table testImage 
(id int, 
myImage varbinary(max)); 

테이블을 감안할 때 어떻게 든 프로젝트의 이미지에, 나는 보안 관련 시나리오가 있다고 생각합니다. 어쨌든 OPENROWSET이 작동하지 않습니다.

그것은 수도와 같은

IF NOT EXISTS (SELECT * FROM testIMAGE where ID = 2) 
BEGIN 
INSERT INTO testImage VALUES 
(2,0x89504E470D0A1A0.....) 
END 

(전체 스크립트 여기 : https://gist.github.com/gavincampbell/a25431dffd3555563a052c297a32415e) 삽입 문에서 사용하는 다시 SELECT에게 다음, 바탕 화면에서 한 번 값을이을 할 더 신뢰할 수

로 당신이 이것을 시도 할 때, 결과 문자열은 이 될 것입니다. 별도의 스크립트에이 스크립트를 보관하고 :r이라는 기본 배포 후 스크립트에서 참조하는 것이 좋습니다. (이미 알고 있다면 사과하십시오!) 또한 바이너리 "문자열"을 따옴표로 묶지 않아도된다는 것을 기억하십시오.