Dica
SQL Server Identificando se arquivo existe: XP vs DMF

A Microsoft parece estar se esforçando para substituir algumas extended stored procedures por DMFs, especialmente agora que, com instalação em windows e linux, algumas extended stored procedures podem não ter o mesmo comportamento nos dois sistemas.

Uma das procedures sendo substituidas é a XP_FileExists. Além da possível diferença entre os sistemas, a XP_FileExists tem uma certa complexidade para ser utilizada.

Veja um exemplo com ela:

SET NOCOUNT ON
DECLARE @iFileExists INT
create table #table (File_exists int, File_directory int,parent_dir int)
insert into #table EXEC master..xp_fileexist 'D:\test.txt'
select @iFileExists=File_exists from #table

PRINT @iFileExists

drop table #table

Neste exemplo o resultado da procedure é inserido em uma tabela temporária, para então ser lido.

A nova DMF sys.dm_os_file_exists substitui a XP e é muito mais simples de utilizar:

select * from sys.dm_os_file_exists('D:\test.txt')

É possível que em breve tenhamos ainda mais XP's sendo substituidas por DMF's.


Búfalo Informática
e-mail: Contato@bufaloinfo.com.br
Telefones: (21) 99240-7281 (21) 99240-5134