Pessoal, Estamos precisando de um DBA DEV com o seguinte perfil: Conhecimento avancado e melhores praticas em programacao T-SQL;Conhecimento basico em administracao SQL Server 2008; Por favor, enviar curriculo para andre@tecnologiapar.com.br / socorrovieira@tecnologiapar.com.br[]'s--Socorro Vieira Algumas pessoas tem por costume fazer a importacao de arquivos atraves do wizard do sql que e o jeito mais tradicional e facil, que depois posso fazer um tutorial de como utilizar. Mas hoje recebi um email na lista de SQL SERVER pedido ajuda para criar uma procedure para importar um arquivo txt.O SQL SERVER tem uma funcao e o BULK INSERT , ela e responsavel por fazer fazer esse tipo de importacao, voce pode delimitar os separadores de linha, o que vale lembrar que este tipo de funcao nao permite dar carga em campos especificos. O arquivo ja deve estar totalmente formatado de acordo a tabela.Um exemplo simples de como utilizar seria esse:BULK INSERT DEC.dbo.Tab_Pernambucanas FROM 'C::\Temp\saldo_201012_v2.txt' WITH ( FIELDTERMINATOR =',', BATCHSIZE = 10000 );Uma maneira de fazer uma procedure para esse tipo de insercao seria:CREATE PROCEDURE IMPORTACAO (@TABLE VARCHAR(100),@CAMINHO VARCHAR(255), @DEL CHAR)ASdeclare @SQL VARCHAR(1000)declare @err_instrucao varchar(255)BEGINSET TRANSACTION ISOLATION LEVEL SERIALIZABLE begin transaction SET @SQL =' BULK INSERT ' + @TABLE + ' FROM ' + @CAMINHO + ' WITH ( FIELDTERMINATOR ='''+@DEL+''', BATCHSIZE = 10000 )' SET @err_instrucao = 'motivo do erro' exec (@SQL)commit transaction return 0err_instrucao:raiserror (@err_instrucao,16,1) rollback transaction return 1ENDEssa e a minha sugestao, outros terao sugestoes bem diferentes e todas as sugestoes sao bem vindas e ajudam no nosso crescimento profissional.Outra informacao importante e que esse tipo de instrucao precisa de das seguintes permissoes INSERT e ADMINISTER BULK OPERATIONS para poder executar. Para um banco de dados no modelo de recuperacao completa, todas as operacoes de insercao de linha executadas pela importacao em massa sao registradas completamente no log de transacoes. Importacoes de dados grandes poderao fazer o log de transacoes ficar cheio rapidamente se o modelo de recuperacao completa for usado. Por outro lado, no modelo de recuperacao simples ou no modelo de recuperacao bulk-logged, o log minimo de operacoes de importacao em massa reduz a possibilidade de uma operacao de importacao em massa preencher o espaco do log. O log minimo tambem e mais eficiente que o log completo. (http://msdn.microsoft.com/en-us/library/ms190422.aspx) No ambiente DB2, quando o usuario solicita que voce limpe o DB ou recrie o banco, surge uma duvida usar um Delete ou Truncate para limpar o banco ou talvez recriar o banco executando um DROP e logo em seguida CREATE.Analisando os possiveis cenarios, hoje no ambiente em que trabalho os bancos sao desenvolvidos com ferramentas de modelagem no qual podemos fazer todo o processo de geracao de scripts ou engenharia reversa! Isso e um cenario perfeito, sei que nao e todos os lugares que funcionam assim, entao vamos a um outro cenario:Ja existe um DB que esta em homologacao e precisa apagar todos os dados e o sistema tem 'n' tabelas e nao existe um modelo feito, a solucao para limpar o DB e realizar um Truncate mas para isso e necessario descobrir quais sao as tabelas do banco.select tabschema