2017-10-04 142 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