-----先开启命令
exec sp_configure 'show advanced options', 1;
 reconfigure;
exec sp_configure 'xp_cmdshell', 1; reconfigure;

-----1.判断文件是否存在
CREATE TABLE #tmp ([File Exists] BIT, [File is a Directory] BIT, [Parent Directory Exists] BIT)
go
INSERT INTO #tmp ([File Exists], [File is a Directory], [Parent Directory Exists])
EXEC master.dbo.xp_fileexist 'D:\Image\logo.jpg'
go
SELECT * FROM #tmp
go
DROP TABLE #tmp
go

--- File Exists                           
--- 1(文件存在)0(文件不存在)       
--- File is Deirectory
--- 1(文件夹存在)0(文件夹不存在)
--- Parent Directory Exists
---1(根目录存在)0(根目录不存在)

-----2.删除多余的图片文件
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Use GCN_B2C
go

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Alter Proc sp_FileIsExists
AS
begin
 DECLARE @Id int
 DECLARE @CardImg nvarchar(1000)
 DECLARE @RegNoImg nvarchar(1000)
 DECLARE @OrgNoImg nvarchar(1000)
 DECLARE @TaxNoImg nvarchar(1000)
 DECLARE @BankImg nvarchar(1000)
 DECLARE @flag int
 DECLARE @ImgName nvarchar(1000)
 DECLARE @ImgPath nvarchar(1000)
 Set @flag=1
   CREATE TABLE #tmpImg (
     Id int IDENTITY(1,1) NOT NULL,
  subdirectory nvarchar(2000),  --目录或者文件名
  depth int,                    --目录层次
  isfile bit default 0          --文件标志,1代表文件
  )
   --将文件夹下所有图片读取并保存在临时表
   INSERT #tmpImg exec master ..xp_dirtree 'D:\B2CJob\TestShow\WebSite\Resource\CompanyImg\',1,1
   INSERT #tmpImg exec master ..xp_dirtree 'D:\B2CJob\TestShow\WebSite\Resource\CardImg\',1,1
      --对比文件夹下和数据库中的数据是否存在,不存在的删除该图片文件
   while Exists (select Id from #tmpImg)
  begin
    select top 1 @Id=Id,@ImgName=subdirectory from #tmpImg
   
   
select @flag=COUNT(Id) from jrCustomer where CardImg=@CardImg Or
RegNoImg=@ImgName Or OrgNoImg=@ImgName Or TaxNoImg=@ImgName Or
BankImg=@ImgName
   
    if @flag=0
    begin
     Set @ImgPath='Del D:\B2CJob\TestShow\WebSite\Resource\CompanyImg\'+@ImgName
            
    Exec master..xp_cmdshell @ImgPath,no_output
    
     Set @ImgPath='Del D:\B2CJob\TestShow\WebSite\Resource\CardImg\'+@ImgName
     Exec master..xp_cmdshell @ImgPath,no_output
    
    end
   
    delete from #tmpImg where Id=@Id
    
  end
end
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
--exec sp_FileIsExists
--exec master.dbo.xp_cmdshell 'del c:\a.txt'
--select * from jrCustomer where  DATEDIFF(DAY,Modi_Date,GETDATE())>1
--exec master.dbo.xp_delete_file 0 ,@ImgPath,'xiaopan',@DelDate
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

SQL语句操作文件的更多相关文章

  1. python模拟SQL语句操作文件

    1.需求 在文本界面输入SQL语句,查询相应的数据,例如输入下面的语句 print(''' 支持大小写的SQL语句查询,大写或者小写都可以 1. select * from db1.emp 2. se ...

  2. SQL语句操作大全

    SQL语句操作大全   本文分为以下六个部分: 基础部分 提升部分 技巧部分 数据开发–经典部分 SQL Server基本函数部分 常识部分 一.基础 1.说明:创建数据库CREATE DATABAS ...

  3. Shell脚本中执行sql语句操作mysql的5种方法【转】

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  4. Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...

  5. MyBatis的SQL语句映射文件详解

    SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用 < ...

  6. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  7. 043:Django使用原生SQL语句操作数据库

    Django使用原生SQL语句操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库.这里我们以配置 MySQL 为例来讲解. Django 连接数据库,不需要单独的创建一个连 ...

  8. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  9. MyBatis学习(二)、SQL语句映射文件(1)resultMap

    二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...

随机推荐

  1. WordPress RokStories插件‘thumb.php’多个安全漏洞

    漏洞名称: WordPress RokStories插件‘thumb.php’多个安全漏洞 CNNVD编号: CNNVD-201309-438 发布时间: 2013-09-26 更新时间: 2013- ...

  2. 【转】Android:Animation的简单学习--不错

    原文网址:http://blog.csdn.net/huangbiao86/article/details/6683665 Animation动画效果.提供了一系列的动画效果,可以应用大多数 的控件. ...

  3. [C# 网络编程系列]专题四:自定义Web浏览器

    转自:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html 前言: 前一个专题介绍了自定义的Web服务器,然而向Web服务器发 ...

  4. 编译Hadoop源码

    背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Ma ...

  5. JavaScript高级程序设计50.pdf

    hashchange事件 HTML5新增了hashchange事件,以便在URL的参数列表(及URL中“#”号后面的所有字符串)发生变化时通知开发人员,之所以新增这个事件,是因为在Ajax应用中,开发 ...

  6. 有两个数组a,b,大小都为n,;通过交换a,b中的元素,使sum(a)-sum(b)最小。

    有两个数组a,b,大小都为n,数组元素的值任意整形数,无序: 要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小. 当前数组a和数组b的和之差为    A = sum(a) - ...

  7. 2 weekend110的SecureCRTPortable远程连接 + 上传安装jdk + 上传安装配置hadoop

    企业公认的最新文本版本:        https://archive.apache.org/dist/ 玩玩这个远程连接软件,是个绿色软件. 别人已经做好了的. 解压之后, 下面,软件展示下, 这会 ...

  8. 个人推荐,比较好的MySQL客户端工具

    关于啊,MySQL客户端,实在是太多了.本人也是正在摸索中. MySQL Workbench phpMyAdmin SQLyog Navicat for MySQL MySQL Server MySQ ...

  9. phpDesigner 工具快捷键巧用

    Zend Studio工具默认的快捷方式, 如果你从事php工作, 自然能够体会到一些便利性, 比如CTRL+D, 可以直接复制当前一行, 这对于重复代码及调试都有很大帮助. Ctrl+U转换大小写之 ...

  10. WordPress文件上传与下载问题解决

    网上流传了一些修改WordPress文件上传大小限制的做法,大部分是一个版本,而且说得不够准确,特别是对于生手的指导性不强,本文总结了使用Wordpress博客的朋友在文件上传与下载时大小限制,及文件 ...