`
baggio1024
  • 浏览: 64436 次
  • 性别: Icon_minigender_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
分享到:
评论

相关推荐

    使用SQL Server判断文件是否存在后再删除(详解)

    首先,我们使用`xp_fileexist`这个系统存储过程来检查文件是否存在。`xp_fileexist`接受两个参数:一个是待检查的文件或目录路径,另一个是输出参数,用于返回结果。如果文件或目录存在,返回值为1;如果不存在,则...

    SQL Server阻止了对组件xp_cmdshell过程的解决方案.docx

    【SQL Server中的xp_cmdshell扩展存储过程】 在SQL Server中,`xp_cmdshell`是一个非常特殊的扩展存储过程,它允许数据库管理员(DBA)在服务器级别执行操作系统命令。这个过程的强大之处在于它能够直接与Windows...

    SQL Server如何启用xp_cmdshell组件1

    在SQL Server中,`xp_cmdshell`是一个非常强大的系统存储过程,它允许数据库管理员执行操作系统级别的命令,并将结果返回到SQL Server环境中。然而,出于安全考虑,`xp_cmdshell`默认是禁用的,因为不恰当的使用可能...

    SQL Server 文件操作方法

    存储过程sys.xp_fileexist 用于判断文件是否存在,参数是文件(file)的路径或目录的路径: exec master.sys.xp_fileexist 'D:test.txt' 该存储过程返回的结果集有一行数据,三个字段,如下图: 二,创建子目录 ...

    sql server 2812错误处理

    `xp_fileexist`存储过程依赖于`xpstar.dll`,用于检查文件是否存在。如果该DLL不存在,则无法调用`xp_fileexist`存储过程,从而引发2812错误。 #### 三、解决方案 针对此问题,可以采取以下两种方式进行修复: ##...

    XP_CMDSSQLSERVER扩展存储过程XP_CMDSHELL的简单应用

    XP_CMDSHELL存储过程是执行本机的CMD命令,要求系统登陆有SA权限,也就是说如果获得SQLSERVER的SA命令,那就可以在目标机为所欲为了,知名软件“流光”使用的应该也是这个存储过程来实现在目标机上的操作。

    SQL Server导出表到EXCEL文件的存储过程

    4. **文件存在性检查**:使用`master..xp_fileexist`扩展存储过程检查指定路径下是否存在指定名称的Excel文件,如果不存在则进行后续操作。 5. **连接字符串构造**:根据文件是否存在以及文件路径构造连接字符串,...

    SQL_Server_存储过程_-_hoojo_-_博客园

    根据提供的文件信息,以下是对SQL Server存储过程的相关知识点的详细阐述: ### 存储过程的概念 存储过程(Procedure)是一种预先定义并经过编译的SQL语句集合,它存储于数据库之中,用户可以通过指定存储过程的...

    MS SQL入侵(小心 xp_cmdshell)

    `xp_cmdshell`是MS SQL Server中一个预编译的扩展存储过程,它允许SQL Server通过命令行执行操作系统级别的命令。这一功能本身设计用于方便数据库管理员执行一些维护任务,例如备份文件、清理日志等。但是,如果...

    UTL_FILE操作文件代码

    这段代码展示了如何使用Oracle的UTL_FILE包来处理文件的读写操作,并且能够将文件内容存储到数据库的BLOB字段中。下面将对各个部分进行详细解读。 ### UTL_FILE简介 UTL_FILE是Oracle提供的一个用于文件I/O操作的...

    SQL 系统存储过程用法整理

    ### SQL系统存储过程用法详解 #### 概述 存储过程是预编译好的SQL语句集合,在数据库中被创建并保存,用户可以通过简单的调用来执行这些存储过程,从而达到提高性能、简化复杂操作的目的。SQL Server提供了丰富的...

    MS SQL数据库备份和恢复存储过程

    综上所述,MS SQL Server的数据库备份和恢复存储过程是通过动态SQL和系统存储过程`sp_executesql`以及`xp_cmdshell`来实现的。它们提供了灵活的方式来自动化数据库的备份和恢复任务,确保在数据丢失或系统故障时能够...

    SQL Server中存储过程比直接运行SQL语句慢的原因

    Parameter sniffing 是指 SQL Server 在执行存储过程时,使用参数的统计信息来优化执行计划,但这种优化方式有时可能会导致执行计划的不正确,从而影响存储过程的执行速度。 在了解这个问题之前,我们通常认为存储...

    SQL阻止组件xp_cmdshell过程解决方案

     SQLServer阻止了对组件'xp_cmdshell'的过程'sys.xp_cmdshell'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure启用'xp_cmdshell'。有关启用'xp_cmdshell'的详细...

    pl sql批量执行多个sql文件和存储过程

    ### PL/SQL批量执行多个SQL文件和存储过程 在日常的数据库管理与开发工作中,经常需要执行大量的SQL脚本或调用多个存储过程。对于Oracle数据库而言,PL/SQL是一种非常强大的工具,它不仅可以用于编写复杂的数据库...

    SQL导出EXCEL(带表头)的存储过程

    4. **xp_fileexist**:这是一个扩展存储过程,用于检查指定的文件是否存在。 #### 存储过程实现细节 该存储过程`p_exporttb`接受三个参数: - `@tbname`:指定要导出的表名。 - `@path`:指定文件存放的路径。 - `...

    SQL SERVER2000数据库备份和恢复存储过程.rar_SQL 备份_recovery in SQL_sql server

    在提供的文件列表中,"MySQL数据库函数.txt"和"从一个MySQL的例子来学习查询语句.txt"虽然不是SQL Server 2000的内容,但可以作为对比学习,了解不同数据库系统在备份恢复机制上的异同。"数据库查询结果的动态排序....

    sql server文件输出

    3. `xp_fileexist` 扩展存储过程:这个扩展存储过程可以用来检查文件或目录是否存在。例如,如果你想确认某个文件是否存在,可以这样执行: ```sql EXEC master.dbo.xp_fileexist 'C:\SQLServerFiles\myDatabase....

    SQL恢复XP_CMDSHLL

    Microsoft SQL Server 恢复 XP_CMDSHLL 功能的命令行

    SQL_Server存储过程调试指南

    资源名称:SQL_Server存储过程调试指南内容简介: 存储过程( Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来...

Global site tag (gtag.js) - Google Analytics