2017-10-04 166 views
0

檢查文件的路徑,我有以下的代碼來更新SQL Server中的文件路徑首先我要檢查,如果該文件的文件夾中存在,如果不存在則更新,否則跳過。我用EXEC master.dbo.xp_fileexist @path, @result但我得到我怎樣才能使用xp_fileexist

消息4104,級別16,狀態1,第10行所述的多部分標識符 「[WITESTCO]。[DBO]。[WIITEMX]。[的itemId]」 無法綁定。

declare @result as int 
declare @path as nvarchar(3000) 
set @path= '\\XY-SERVER\Data\PRODUCTION\VAULT\200000 - 399999 \PDF\'+[WITESTCO].[dbo].[WIITEMX].[itemId]+'.pdf' 
EXEC master.dbo.xp_fileexist @path, @result OUTPUT 

if @result=1 
update [WITESTCO].[dbo].[WIITEMX] 
set [docPath] = @path FROM [WITESTCO].[dbo].[WIITEMX] where itemId LIKE'500%' 
else 
update [WITESTCO].[dbo].[WIITEMX] set [docPath] ='' FROM [WITESTCO].[dbo].[WIITEMX] where itemId LIKE'500%' 

回答

0

update語句看起來不正確。在Set語句和Where子句之間刪除FROM [WITESTCO].[dbo].[WIITEMX]

if @result=1 
    update [WITESTCO].[dbo].[WIITEMX] 
    set [docPath] = @path 
    where itemId LIKE'500%' 
    else  
     update [WITESTCO].[dbo].[WIITEMX] 
     set [docPath] ='' 
     where itemId LIKE'500%' 
+0

我的問題是在這條線'設置@路徑= '\\ XY-SERVER \數據\ PRODUCTION \ VAULT \ 200000 - 399999 \ PDF \' + [WITESTCO] [DBO] [WIITEMX]。 [的itemId] +」。pdf''的PDF文件是基於在WITEMX表的itemid保存。我怎麼能代替串連我認爲串連創建問題 – user8066749

+0

啊......我覺得愚蠢......你需要首先從表中選擇該項目。你可以通過作爲參數的文件名?或者做一個選擇上面的變量。 –

+0

我如何從表中首先選擇項目?這就是我的problemand得到的文件路徑爲'設置@路徑=「\\ XY-SERVER \ DATA \生產\ VAULT \ 200000。 - 399999 \ PDF \ itemId.pdf'' SQL犯規像'[WITESTCO] [DBO] [ WIITEMX]。[itemId]'部分。我有什麼選擇 – user8066749