SQL作为数据库,里面有一个表TABLE,TABLE中有字段FNAME,FNAME保存的是磁盘文件夹“DownLoad”中的一些文件的部分文件名,例如“DownLoad”下有一个文件“tff_12345”,FNAME保存的是“2345”,这个时候要做一个删除功能,通过SQL语句来删除所有“DownLoad”下不符合FNAME的文件,如:“DownLoad”下有一个文件“TFF1_qr3”,在表TABLE的FNAME字段中找不到一个和他相匹配的,那么这个文件就可以删除了,我现在只知道SQL删除文件用的是exec master..xp_cmdshell 'del filename'
,但是如何实现上述功能?望各位高手不吝赐教,谢谢。
,但是如何实现上述功能?望各位高手不吝赐教,谢谢。
CREATE TRIGGER [TRIGGER NAME] ON [dbo].[文件表名]
FOR DELETE
AS
DECLARE @fileName VARCHAR(50)
SELECT @fileName = 文件名 FROM deleted
exec master..xp_cmdshell 'del ' + @fileName
insert into tb_test select 1,'c:\a.txt'
insert into tb_test select 2,'c:\b.txt'
insert into tb_test select 3,'c:\c.txt'declare @sql varchar(max)
select @sql=isnull(@sql+';','')+' exec master..xp_cmdshell ''del '+fname+''''
from tb_test
exec(@sql)
declare @FNAME VARCHAR(10)
SELECT @FNAME = '123'
exec master..xp_cmdshell 'del F:\测试\%@FNAME%.*'
这样的语句语法上是没问题,效果上不能达到我的预期目标,该怎么写才好呢?