--判断文件是否存在,存在则删除. 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 发布