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

在SQL Server中可以使用系统内部存储过程xp_fileexist判断文件是否存在,如果存在再使用xp_cmdshell删除文件。xp_fileexist除了可以判断文件是否存在外,还可以判断文件夹是否存在,下面是下使用这两个的示例。

删除文件存储过程
ALTER proc [dbo].[delFile_P]
( @path nvarchar(200))
as
declare @result int
exec master.dbo.xp_fileexist @path,@result out --路径可以有空格
if @result = 1 --1存在该文件,0不存在
begin
    --如果路径有空格,在执行cmdshell前必须替换空格字符,用双引号括住
    set @path = 'del ' + replace(@path,' ','" "')
    exec master.dbo.xp_cmdshell @path
end
调用存储过程 exec MIS.dbo.delFile_P 'F:/Internet Explorer 6 绿色版/install.log'

(0)

相关推荐

  • sql server判断数据库、表、列、视图是否存在

    1 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 2 判断表是否存在 if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [表名] 3 判断存储过程是否存在 if exist

  • sql server中判断表或临时表是否存在的方法

    1.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存在' 例如: use fireweb; go if object_id(N'TEMP_TBL',N'U') is not null print '存在' else print '不存在' 方法二: USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObjec

  • mysql 判断记录是否存在方法比较

    我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数. 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行

  • 用SQL语句查找Access中某表是否存在的小技巧

    Access数据库虽然功能单一,但的确是一个小巧精干的开发伙伴,我在多个项目中与它见面,为了探知Access数据库的本源,今天上网查了些资料.现总结归纳如下: 在Access数据库中通过SQL语句找到某一表是否存在的确是一件困难的事.幸好, Access本身就有一些隐含的数据对象能够保存你库中的信息,今天我就遇到了要用SQL,通过程序查询某一表是否存在的问题,解决方法如下: 由于Access数据库本身的"管理员"组没有访问隐含对象的权限,因此先要:工具 -> 选项 -> 视

  • SQL判断字段列是否存在的方法

    增加字段 复制代码 代码如下: alter table docdsp  add dspcode char(200) 删除字段 复制代码 代码如下: ALTER TABLE table_NAME DROP COLUMN column_NAME 修改字段类型 复制代码 代码如下: ALTER TABLE table_name  ALTER COLUMN column_name new_data_type 改名sp_rename更改当前数据库中用户创建对象(如表.列或用户定义数据类型)的名称.语法 复

  • mysql中判断记录是否存在方法比较

    我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数. 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行

  • sql 判断函数、存储过程是否存在的代码整理

    下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助. -- 库是否存在 if exists(select * from master..sysdatabases where name=N'库名') print 'exists' else print 'not exists' -- 判断要创建的表名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N

  • SQL SERVER先判断视图是否存在然后再创建视图的语句

    如果我们的语句为: IF NOT EXISTS(SELECT 1 FROM sys.views WHERE name='Report_IndividualTicket') BEGIN create view Report_IndividualTicket as SELECT Ticket.TicketNumber, Ticket.TicketID, GisProcess.StageName, Content.DtReceived, Content.ContentText FROM (GisPro

  • sqlserver 各种判断是否存在(表名、函数、存储过程等)

    sql server中如何判断表或者数据库的存在,但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only.dbo use only.single user 等)进行设置: 1 = autoclose:使用 sp_dboption 设置. 数据库完全关闭,其资源在最后一个用户注销后释放.4 = select into/bulkcopy:使用 sp_dboption 设置.允许使用 Select INTO 语句和快速大容量复制.8 = tru

  • mysql判断字段是否存在的方法

    1. desc 命令 格式: desc tablename columnname 例子: desc `table` `mid` desc `table` '%abc%' 2. show columns 命令 格式: show columns from tablename like columnname 例子: show columns from `table` like 'mid' show columns from `table` like '%abc%' 3. describe 命令 格式:

  • sql 判断数据库,表,存储过程等是否存在的代码

    代码: --库是否存在 if exists(select * from master..sysdatabases where name=N'库名') print 'exists' else print 'not exists' --------------- -- 判断要创建的表名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsU

随机推荐