--判断文件是否存在,存在则删除. IF OBJECT_ID('p_QueryCheckFile','P') IS NOT NULL DROP PROC p_QueryCheckFile GO CREATE PROC p_QueryCheckFile @path NVARCHAR(1000), @fname NVARCHAR(250) AS --检查文件是否已经存在 IF RIGHT(@path,1)<>'\' SET @path=@path+'\' IF OBJECT_ID('temp_xp_fileexist','U') IS NOT NULL BEGIN DROP TABLE temp_xp_fileexist END CREATE TABLE temp_xp_fileexist(a BIT,b BIT,c BIT) DECLARE @sql NVARCHAR(1000) SET @sql=@path+@fname INSERT INTO temp_xp_fileexist EXEC master..xp_fileexist @sql /* xp_fileexist 返回的三个列, 分别代表 文件已存在 文件是目录 父目录已存在 ----- ----- ------ 0 0 1 */ IF EXISTS(SELECT 1 FROM temp_xp_fileexist WHERE a=1) --文件已经存在 BEGIN DECLARE @del NVARCHAR(200) SELECT @del ='del '+@sql EXEC master..xp_cmdshell @del PRINT '相关文件已删除!' END ELSE IF EXISTS(SELECT 1 FROM temp_xp_fileexist WHERE b=1) BEGIN PRINT '存在文件目录!' END ELSE IF EXISTS(SELECT 1 FROM temp_xp_fileexist WHERE b=1) BEGIN PRINT '存在文件父目录!' END ELSE PRINT '您所指定的文件不存在!' GO EXEC p_QueryCheckFile 'E:\soft\','test.rar' /* output -------------- NULL (1 行受影响) 相关文件已删除! */
判断所指定的文件或目录是否存在存储过程
最新推荐文章于 2023-04-04 23:45:50 发布
本文介绍了一个SQL存储过程,用于检查指定路径下文件是否存在,并在文件存在时进行删除操作。该过程利用了xp_fileexist扩展存储过程来判断文件状态。
1834

被折叠的 条评论
为什么被折叠?



