복붙노트

[SQL] 어떻게 TSQL을 사용하여 업데이트의 Blob에서 SQL 서버에

SQL

어떻게 TSQL을 사용하여 업데이트의 Blob에서 SQL 서버에

어떻게 전용 (SSMS에서 예를 들어 및 ADO.Net 또는 Linq에 같은 코드를 사용하지 않는) TSQL을 사용하여 BLOB 필드를 업데이트하는 방법은 무엇입니까?

해결법

  1. ==============================

    1.TSQL와 BLOB를 선택하는 방법은 두 가지가 있습니다 :

    TSQL와 BLOB를 선택하는 방법은 두 가지가 있습니다 :

    SELECT * FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a
    

    만큼 잘:

    SELECT BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a
    

    필수 FROM 절 이후의 상관 관계 이름을합니다.

    두 번째 버전은 다음의 예와 같이 UPDATE 사용할 수있다 :

    UPDATE MyTable 
    SET blobField = 
       (SELECT BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a) 
    WHERE (CriteriaField = @criteria)
    

    부분 업데이트의 일이 MSDN 문서에 설명 된대로 SET에 .write 뮤 테이터를 사용할 수 있습니다, 여기에 구문은 다음과 같습니다

    UPDATE MyTable SET BlobField .WRITE (expression, @offset, @length) WHERE (CriteriaField = @criteria)
    

    쓰기 뮤 테이터가 비 NULL 필드에서만 사용할 수 있습니다.

    사실 이것은 또한 다음 예제와 같이 (또는 실제 길이) NULL을 0으로 @offset 및 @length을 설정하여, (열이 NULL을 포함하지 않는 경우) 전체 업데이트를 수행 할 수 있습니다 :

    DECLARE @tmp VARBINARY(MAX) --Change to the correct datatype here
    SELECT @tmp = BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a
    UPDATE MyTable SET BlobField .WRITE (@tmp, 0, NULL) WHERE (CriteriaField = @criteria)
    
  2. from https://stackoverflow.com/questions/11820971/how-to-update-a-blob-in-sql-server-using-tsql by cc-by-sa and MIT license