0
다음은 스택 오버플로에서 발견 한 동적 SQL 솔루션에 대한 질문입니다. 이전 예제에서 사용한 코드 모델을 사용하고 싶습니다. 문제는 다음과 같은 오류가 나타납니다. 메시지 4104, 수준 16, 상태 1, 줄 1 다중 부분 식별자 "ABC123.jpg"을 바인딩 할 수 없으며 이미지 이름이 실제로로드되는 이유를 이해하지 못합니다. . 나는 나의 지혜 끝에있다. 나는이 솔루션을 작동시키는 데 아주 가깝지만이 문제를 넘어서는 것은 아닐 수 있다고 생각합니다.SQL Server에서 이미지 가져 오기 : 수행하십시오.
아래의 예제 코드는 찾아주세요 :
declare AssetCursor cursor fast_forward for
select Image_File_Name
from Images
declare @sql nvarchar(4000)
declare @Image_File_Name varchar(50)
open AssetCursor
while (1=1) begin
fetch next from AssetCursor into @Image_File_Name
if @@FETCH_STATUS<>0 break
set @sql = N'UPDATE dbo.Images
SET Doc_Image =
(SELECT * FROM
OPENROWSET(BULK N''C:\MyImages\' + cast(@Image_File_Name as varchar(50)) + N'.JPG'', SINGLE_BLOB) AS img)
WHERE Image_File_Name = ' + cast(@Image_File_Name as varchar(50))
exec(@sql)
end /* while */
close AssetCursor
deallocate AssetCursor
내가 얻을 : 메시지 105, 수준 15, 상태 1, 줄 18 닫히지 않은 인용 부호 문자열 후 IMG AS '.JPG'SINGLE_BLOB)) Image_File_Name = '+ VARCHAR 같은 캐스트 (@Image_File_Name (50))' 간부 (@Sql) 단부/* 동안 */ 근접 AssetCursor 할당 해제 AssetCursor ' . 메시지 102, 수준 15, 상태 1, 줄 18 '.JPG', SINGLE_BLOB) AS 근처의 구문이 올바르지 않습니다. img) WHERE Image_File_Name = '+ cast (@Image_File_Name as varchar (50))' '. – user2379163