SQL语句操作文件
2014-12-25 09:43
267 查看
-----先开启命令
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
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- Python操作文件模拟SQL语句功能
- SQL SERVER 2005中使用sql语句对xml 文件和其数据的进行操作(很全面)
- 在两个不同的Access文件中,怎么写SQL语句跨库操作呀?
- sql语句放到外部xml文件里,读取操作
- SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)
- Mysql 将结果保存到文件 从文件中执行sql语句 记录操作过程(tee 命令的使用)
- 在配置文件中获取数据源,然后在hibernate中用sql语句进行查询操作
- 简单sql查询接口(需要在文件中指定conn才能进行sql语句操作)
- Mysql 将结果保存到文件 从文件里运行sql语句 记录操作过程(tee 命令的使用)
- 用T-SQL语句实现SQL server与XLS,MDB等文件的数据交换
- VB6.0 文件操作语句
- IBatisNet之获取和操作SQL语句
- 用Ms SQL Server 存储过程操作DBF文件
- Sql Server 和 Access 操作数据库结构Sql语句
- 操作数据库结构Sql语句
- SQL和Access操作数据库结构SQL语句
- Sql Server 和 Access 操作数据库结构Sql语句
- sql-"以前的某个程序安装已在安装计算机上创建挂起的文件操作"
- 用T-SQL语句实现SQL server与XLS,MDB等文件的数据交换
- 用T-SQL语句实现SQL server与XLS,MDB等文件的数据交换