Удалить запись из базы данных, где она не совпадает с физическими записями файла - PullRequest
2 голосов
/ 14 октября 2011

У меня есть таблица, которая содержит имя файла и точный путь, т. Е. XYZ.txt C: /Test/XYZ.txt Есть несколько ВОПРОСОВ ИНТЕГРИЧНОСТИ, случай: имя файла и расположение существует в базе данных, но в физическом месте файла, файлне существуетЯ мог бы написать код в SQL 2008, который проверяет и удаляет запись файла из базы данных, если файл не существует в указанном месте.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 14 октября 2011
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 ;

Этот скрипт проверяет, существует ли файл или нет. Вы можете добавить свою логику, чтобы удалить запись файла из базы данных.

Надеюсь, это поможет.

0 голосов
/ 14 октября 2011

Используя код, подобный следующему, вы можете узнать, основываясь на результатах запроса

  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 

Подробнее на сайте Проверьте, существует ли файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...