想做一个页面,将文件保存在WEB服务器上,并将文件在WEB服务器上的路径存入SQL表,为解决表中记录与WEB上文件不对应的问题想让SQL根据表中记录判断WEB服务器上的文件是否存在,然后处理。请各位赐教!!

解决方案 »

  1.   

    SQL中用系统存储过程xp_fileexist来判断文件是否存在 
    SQL中用系统存储过程xp_fileexist来判断文件是否存在 
    一、xp_fileexist调用说明 1、 
    xp_fileexist "c:\autoexec.bat" File Exists  File is a Directory   Parent Directory Exists 
    -----------    -------------------       ----------------------- 
    1                 0                              1 
    --1表存在,0表不存在 
    (1 row(s) affected) 
    ------------------------------------------ 
    2、 
    declare @result int 
    exec xp_fileexist 'c:\autoexec.bat', @result output @result=1表文件存在 
    @result=0表文件不存 二、测试 if exists (select * 
                from sysobjects 
                    where type='u' 
                        and 
                    name = 'temp_xp_fileexist') 
        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 Declare @result int --文件夹存在 011 0 
    --insert into temp_xp_fileexist 
    --exec xp_fileexist 'C:\test' 
    --insert into temp_xp_fileexist 
    --exec xp_fileexist 'C:\test',@result output --文件夹不存在 001 0 
    --insert into temp_xp_fileexist 
    --exec xp_fileexist 'C:\testss' 
    --insert into temp_xp_fileexist 
    --exec xp_fileexist 'C:\testss',@result output --文件夹存在、文件存在 101 1 
    --insert into temp_xp_fileexist 
    --exec xp_fileexist 'C:\test\test.txt' 
    --exec xp_fileexist 'C:\test\test.txt',@result output 
    --文件夹存在、文件存在 000 0 
    insert into temp_xp_fileexist 
    exec master.dbo.xp_fileexist 'C:\testsdf\test.txt' 
    exec xp_fileexist 'C:\testsdf\test.txt',@result output --文件夹存在、文件不存在 001 0 
    --insert into temp_xp_fileexist 
    --exec xp_fileexist 'C:\test\testsdfs.txt' 
    --exec xp_fileexist 'C:\test\testsdfs.txt',@result output select * from temp_xp_fileexist select @result drop table temp_xp_fileexist 三、定义成文件判断函数 
    create function dbo.FileExist( 
    @filePath nvarchar(600), 
    @fileName nvarchar(400) 
    ) returns int 
    as 
    begin declare @result int 
    declare @sql nvarchar(1000) 
    set @sql=@filePath+@fileName exec master.dbo.xp_fileexist @sql,@result output 
    return @result 
    end 
      

  2.   

    谢谢!同一台机器我会,但是SQL与WEB不在同一台机器,如何解决?
      

  3.   

    尝试将WEB的文件共享,或将WEB的某盘映射到SQL这个机器,然后再查.