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
分享到:
相关推荐
首先,我们使用`xp_fileexist`这个系统存储过程来检查文件是否存在。`xp_fileexist`接受两个参数:一个是待检查的文件或目录路径,另一个是输出参数,用于返回结果。如果文件或目录存在,返回值为1;如果不存在,则...
【SQL Server中的xp_cmdshell扩展存储过程】 在SQL Server中,`xp_cmdshell`是一个非常特殊的扩展存储过程,它允许数据库管理员(DBA)在服务器级别执行操作系统命令。这个过程的强大之处在于它能够直接与Windows...
在SQL Server中,`xp_cmdshell`是一个非常强大的系统存储过程,它允许数据库管理员执行操作系统级别的命令,并将结果返回到SQL Server环境中。然而,出于安全考虑,`xp_cmdshell`默认是禁用的,因为不恰当的使用可能...
存储过程sys.xp_fileexist 用于判断文件是否存在,参数是文件(file)的路径或目录的路径: exec master.sys.xp_fileexist 'D:test.txt' 该存储过程返回的结果集有一行数据,三个字段,如下图: 二,创建子目录 ...
`xp_fileexist`存储过程依赖于`xpstar.dll`,用于检查文件是否存在。如果该DLL不存在,则无法调用`xp_fileexist`存储过程,从而引发2812错误。 #### 三、解决方案 针对此问题,可以采取以下两种方式进行修复: ##...
XP_CMDSHELL存储过程是执行本机的CMD命令,要求系统登陆有SA权限,也就是说如果获得SQLSERVER的SA命令,那就可以在目标机为所欲为了,知名软件“流光”使用的应该也是这个存储过程来实现在目标机上的操作。
4. **文件存在性检查**:使用`master..xp_fileexist`扩展存储过程检查指定路径下是否存在指定名称的Excel文件,如果不存在则进行后续操作。 5. **连接字符串构造**:根据文件是否存在以及文件路径构造连接字符串,...
根据提供的文件信息,以下是对SQL Server存储过程的相关知识点的详细阐述: ### 存储过程的概念 存储过程(Procedure)是一种预先定义并经过编译的SQL语句集合,它存储于数据库之中,用户可以通过指定存储过程的...
`xp_cmdshell`是MS SQL Server中一个预编译的扩展存储过程,它允许SQL Server通过命令行执行操作系统级别的命令。这一功能本身设计用于方便数据库管理员执行一些维护任务,例如备份文件、清理日志等。但是,如果...
这段代码展示了如何使用Oracle的UTL_FILE包来处理文件的读写操作,并且能够将文件内容存储到数据库的BLOB字段中。下面将对各个部分进行详细解读。 ### UTL_FILE简介 UTL_FILE是Oracle提供的一个用于文件I/O操作的...
### SQL系统存储过程用法详解 #### 概述 存储过程是预编译好的SQL语句集合,在数据库中被创建并保存,用户可以通过简单的调用来执行这些存储过程,从而达到提高性能、简化复杂操作的目的。SQL Server提供了丰富的...
综上所述,MS SQL Server的数据库备份和恢复存储过程是通过动态SQL和系统存储过程`sp_executesql`以及`xp_cmdshell`来实现的。它们提供了灵活的方式来自动化数据库的备份和恢复任务,确保在数据丢失或系统故障时能够...
Parameter sniffing 是指 SQL Server 在执行存储过程时,使用参数的统计信息来优化执行计划,但这种优化方式有时可能会导致执行计划的不正确,从而影响存储过程的执行速度。 在了解这个问题之前,我们通常认为存储...
SQLServer阻止了对组件'xp_cmdshell'的过程'sys.xp_cmdshell'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure启用'xp_cmdshell'。有关启用'xp_cmdshell'的详细...
### PL/SQL批量执行多个SQL文件和存储过程 在日常的数据库管理与开发工作中,经常需要执行大量的SQL脚本或调用多个存储过程。对于Oracle数据库而言,PL/SQL是一种非常强大的工具,它不仅可以用于编写复杂的数据库...
4. **xp_fileexist**:这是一个扩展存储过程,用于检查指定的文件是否存在。 #### 存储过程实现细节 该存储过程`p_exporttb`接受三个参数: - `@tbname`:指定要导出的表名。 - `@path`:指定文件存放的路径。 - `...
在提供的文件列表中,"MySQL数据库函数.txt"和"从一个MySQL的例子来学习查询语句.txt"虽然不是SQL Server 2000的内容,但可以作为对比学习,了解不同数据库系统在备份恢复机制上的异同。"数据库查询结果的动态排序....
3. `xp_fileexist` 扩展存储过程:这个扩展存储过程可以用来检查文件或目录是否存在。例如,如果你想确认某个文件是否存在,可以这样执行: ```sql EXEC master.dbo.xp_fileexist 'C:\SQLServerFiles\myDatabase....
Microsoft SQL Server 恢复 XP_CMDSHLL 功能的命令行
资源名称:SQL_Server存储过程调试指南内容简介: 存储过程( Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来...