我有一个包含文件名和确切路径的表,即XYZ.txt C:/Test/XYZ.txt 存在少数完整性问题,案例:文件名和位置存在于数据库中但在物理文件位置上,文件不存在。 我有办法,我可以在SQL 2008中编写一个代码,用于检查和删除数据库中的文件条目,如果文件在提供的位置不存在。
提前致谢。
答案 0 :(得分:1)
declare @file_path nvarchar(500)
declare @file_exists int
set @file_path = 'C:\temp.txt'
**exec master.dbo.xp_fileexist
@file_path,
@file_exists output**
select @file_exists
Print 'File '+isnull(@file_path,'NULL')+' '+
case when @file_exists = 1
then 'exists'
else 'does not exist' end ;
此脚本检查文件是否存在。您可以添加逻辑以从数据库中删除文件条目。
希望有所帮助。
答案 1 :(得分:0)
使用如下代码,您可以根据查询的输出找出
declare @Path varchar(128) ,
@FileName varchar(128)
select @Path = 'C:\' ,
@FileName = 'myfile.txt'
declare @objFSys int
declare @i int
declare @File varchar(1000)
select @File = @Path + @FileName
exec sp_OACreate 'Scripting.FileSystemObject', @objFSys out
exec sp_OAMethod @objFSys, 'FileExists', @i out, @File
if @i = 1
print 'exists'
else
print 'not exists'
exec sp_OADestroy @objFSys
网站上的更多内容Check if file exists