【发布时间】:2014-05-21 11:46:29
【问题描述】:
我有一个递归删除存储过程,当我删除一个文件或文件夹时,它会从我的记录中删除所有文件和文件夹。但是,我还有一个存储实际文件的文件目录。这些文件名存储在要删除的记录中。我将如何管理从即将删除的记录中检索文件名并从目录中删除该文件?
这是我的程序:
WHILE (SELECT COUNT(FileID) FROM Files WHERE ParentFolderID is not null AND ParentFolderID not in (SELECT FileID FROM Files) AND ParentfolderID !=0 ) > 0
BEGIN
DELETE FROM Files Where ParentFolderID is not null AND ParentFolderID !=0 AND ParentFolderID not in (SELECT FileID FROM Files);
END
Files 中用于从目录中检索文件的标识符 是“文件名”。长话短说,从文件中删除“X”时,得到 “X”的文件名并从文件目录中删除。
【问题讨论】:
-
这只是一个长镜头,但如果你有一个 microsoft sql 服务器,你可以尝试创建一个 CLR 用户定义函数。此函数将文件名的路径作为参数并将其删除。然后在 DELETE FROM 之前调用此函数。