Uma das tarefas mais tediosas que confrontam DBAs hoje é Inserção de dados em massa. Isto não é porque a própria tarefa é difícil, é porque os usuários que fornecem os dados para o movimento de inserção o fazem em um ritmo um pouco de lazer. Por exemplo, muitas empresas (talvez a sua) utiliza um sistema de contabilidade baseado em UNIX. Os dados de que o sistema precisa ser importados para o sistema de RH com base SQL Server regularmente (geralmente semanal ou mensal). Para importar esses dados você precisa esperar para que o usuário forneça o arquivo de exportação para que você possa inseri-lo em massa no banco de dados SQL Server. O problema para você está esperando, especialmente se isso está acontecendo com você na sexta-feira antes de um grande fim de semana fora da cidade. A melhor maneira de contornar este problema é automatizar o processo usando um procedimento armazenado estendido dos indocumentados chamado xp_fileexist.
Se você acabou de executar o procedimento, por si só você ver algo como isto:
xp_fileexist “c: \ autoexec.bat”
Arquivo Existe Arquivo é um diretório Parent Directory existe
———– ——————- ———————–
1 0 1
(1 row (s) affected)
Isto apenas significa que c: \ autoexec.bat existe e que não é um diretório. Isso é ótimo, exceto que você não pode basear uma etapa de trabalho sobre ele como eles são analfabetos e não podem ler o texto em linha reta. Se você quiser usar mais precisamente, precisa colocar a saída em uma variável. É aí que o código a seguir entra em jogo;
declare @result int
exec xp_fileexist ‘c:\autoexec.bat’, @result output
Se o arquivo existirresult realizará um valor de 1 Se o arquivo não existir, então a variável irá realizar um valor de 0 Agora você só precisa configurar um trabalho, com um passo que é algo como isto:
declare @result int
exec xp_fileexist ‘filename’, @result output
IF (result = 1) –if existe importá-lo, caso contrário, saída
BEGIN
nometabela inserção em massa‘filename’
ELSE
print ‘filename não chegou’
Agora tudo que você precisa fazer é dizer ao povo de contabilidade onde enfiar seu arquivo (diretório o que quero dizer) e deixe SQL Server fazer o resto.
Existem algumas coisas importantes para lembrar aqui. Não há nenhuma verificação de erro embutido para o código que deve ter cuidado. Além disso, este é um recurso não documentado, o que significa que a Microsoft pode alterá-lo a qualquer momento sem qualquer aviso, de modo a verificar os seus procedimentos, após um pacote de atualização ou serviço. Fora isso, automatize suas importações!
Deixe um comentário