我怎样才能检查文件是否存在

时间:2017-10-10 20:57:06

标签: sql-server tsql

我有以下代码来更新docPath字段,我需要有关如何在运行更新语句之前检查文件是否存在的帮助,或者仅在文件存在于目录中时更新,否则跳过

INSERT INTO DocPath(itemId,docPath)
SELECT 
  itemId,
  '\\ABC-SERVER\Data\PRODUCTION\VAULT\2500000 - 2599999 \PDF\''
   +[WITESTCO].[dbo].[WIITEMX].[itemId]
   +'.pdf'  as docPath
   FROM [WITESTCO].[dbo].[WIITEMX]
   WHERE 
      itemId like '2500%' or itemId like '2501%' ; 

1 个答案:

答案 0 :(得分:0)

创建一个像这样的函数

CREATE FUNCTION dbo.fn_FileExists(@path varchar(512))
RETURNS BIT
AS
BEGIN
     DECLARE @result INT
     EXEC master.dbo.xp_fileexist @path, @result OUTPUT
     RETURN cast(@result as bit)
END;
GO

并使用像这样的功能

IF dbo.fn_FileExists('MyPath') = 1
INSERT INTO DocPath(itemId,docPath)
SELECT itemId,'MyPath' ...; 

this question类似