Lembrando que o usuário do serviço do MSSQL, precisar ter permissão no diretório onde está localizado o arquivo txt.
Se mesmo assim ocorrer na hora de excluir o arquivo, veja este post http://desenvolvendorespostas.blogspot.com.br/2016/04/exec-masterxpcmdshell-del-arquivo.html
para ter acesso a função fncSplit, veja este post http://desenvolvendorespostas.blogspot.com.br/2016/04/split-de-texto-no-mssql.html
USE [BANCO]GO/****** Object: StoredProcedure [dbo].[PRC_CARGA_SELECAO_BI] Script Date: 15/04/2016 14:05:09 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[PRC_CARGA_SELECAO_BI] ASSET XACT_ABORT ONBEGIN TRYBEGIN TRANDECLARE@EXIST int,@DOMINIO VARCHAR(200),@USUARIO VARCHAR(200),@NAME VARCHAR(MAX),@ARQUIVO VARCHAR(MAX),@SQL VARCHAR(2000)--cria tabela temporáriaCREATE TABLE #FileList(Name varchar(200), depth numeric, IsFile numeric)--busca arquivos da tabela da pasta e grava na tabelaINSERT INTO #FileList exec master.dbo.xp_dirtree N'\\Srvdhtbd\selecoes_bi\', 1, 1--verifica se o arquivo desejado existe e grava na variavélselect TOP 1 @EXIST = files.IsFile, @NAME = Name from #filelist files--verifica se arquivo existeIF @EXIST = 1BEGINSET @DOMINIO = master.dbo.fncSplit(@NAME, '_', 1)SET @USUARIO = master.dbo.fncSplit(@NAME, '_', 2)--cria tabela dos protocolos selecionadosCREATE TABLE #SELECIONADOS (SOL_INT_COD int)SET @ARQUIVO = 'S:\SELECOES_BI\'+@DOMINIO+'_'+@USUARIO+'_SELECAO_GIS_pronto.txt'--importa txt e insere na tabelaSET @SQL = 'BULK INSERT #SELECIONADOS FROM '''+@ARQUIVO+' '' WITH( FIRSTROW = 2)'EXEC(@SQL)--apaga arquivo da pastaSET @SQL = 'EXEC MASTER..XP_CMDSHELL ''del '+@ARQUIVO+''''EXEC(@SQL)--APAGA DADOS DO USUÁRIODELETE FROM MV_SELECAO_BI WHERE DOMINIO = @DOMINIO AND USUARIO = @USUARIO--INSERE DADOS MV [dbo].[MV_SELECAO_BI]INSERT INTO [dbo].[MV_SELECAO_BI]([OBJECTID],[SOL_INT_COD],[SOL_BAIRRO],[SOL_ENDERECO],[SOL_REGIAO],[SHAPE],[SOL_DT_CRIACAO],[SOL_DT_ULT_RESP],[ASSU_STR_DES],[ASS_STR_DES],[SUB_STR_DES],[ORG_STR_DES],[UNI_STR_DES],[GRU_INT_COD],[GRU_STR_DES],[SOL_STR_PEN],[LOG_STR_TP],[LOG_STR_NME],[LOG_INT_NUM],[LOG_STR_REG],[LGO_STR_BAI],[LGO_STR_CID],[LOG_STR_EST],[LOG_INT_CEP],[SOL_STR_TP],[SOL_STR_SIT],[SOL_STR_PRAZO],[SOL_STR_LIDO],[DOMINIO],[USUARIO])(SELECT[OBJECTID],SOLICITACAO.[SOL_INT_COD],[SOL_BAIRRO],[SOL_ENDERECO],[SOL_REGIAO],[SHAPE],[SOL_DT_CRIACAO],[SOL_DT_ULT_RESP],[ASSU_STR_DES],[ASS_STR_DES],[SUB_STR_DES],[ORG_STR_DES],[UNI_STR_DES],[GRU_INT_COD],[GRU_STR_DES],[SOL_STR_PEN],[LOG_STR_TP],[LOG_STR_NME],[LOG_INT_NUM],[LOG_STR_REG],[LGO_STR_BAI],[LGO_STR_CID],[LOG_STR_EST],[LOG_INT_CEP],[SOL_STR_TP],[SOL_STR_SIT],[SOL_STR_PRAZO],[SOL_STR_LIDO],@DOMINIO as DOMINIO,@USUARIO AS USUARIOFROM[SJCAMPOS].[dbo].[MV_SOLICITACAO] SOLICITACAOJOIN#SELECIONADOS SEL ON SOLICITACAO.SOL_INT_COD = SEL.SOL_INT_COD)ENDCOMMIT TRANEND TRYBEGIN CATCHDECLARE @erro intSET @erro = @@error -- Variável @err pega o conteúdo de @@errorROLLBACK TRAN--INSERT INTO [SJCAMPOS].[dbo].[TB_LOG_ERRO_PROC] VALUES ('[dbo].[PRC_CARGA_SELECAO_BI]', @erro, GETDATE(),ERROR_MESSAGE())END CATCH