Usuário com melhor resposta
Executar varios inserts numa tacada só

Pergunta
-
Bom dia,
Gostaria de tirar um dúvida.Tenho para inserir numa tabela um script com +- 12000 registros, teria como eu executar eles no meu banco de dados tudo de uma vez?
Estava tentando usar o sp_executesql mas nao tive sucesso!
Alguem pode me ajudar?
Respostas
-
Uma alternativa é utilizar o Bulk Insert.
Veja um exemplo aqui : http://blogs.msdn.com/b/nikhilsi/archive/2008/06/11/bulk-insert-into-sql-from-c-app.aspx
http://www.dotnetcurry.com/ShowArticle.aspx?ID=323
Um pouco mais sobre Bulk Insert.
http://msdn.microsoft.com/en-us/library/aa225968%28v=SQL.80%29.aspx
- Sugerido como Resposta ArmandoLacerdaMVP quarta-feira, 23 de janeiro de 2013 00:55
- Marcado como Resposta Ricardo Russo sexta-feira, 25 de janeiro de 2013 11:56
Todas as Respostas
-
Poderia dar um pouco mais de datalhes sobre o seu ambiente?
Este 12k de registros estão em uma planilha? txt? em tabela do SQL? precisa ter alguma transformação dos dados?
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS, MCITP, MCT.
Se útil, classifique!!!
Me siga no twitter: @marcelodba -
Fala Marcelo, tudo bem?
Então, eu tenho esses dados numa string no meu c#. exemplo
string sql = "Insert into tabela (col1, col2, col3) values ('1'2','3');";
sql += "Insert into tabela (col1, col2, col3) values ('1'2','3');";
sql += "Insert into tabela (col1, col2, col3) values ('1'2','3');";
Eu queria jogar essa string no meu sql e executar para rodar tudo de uma vez...
Se nao para cada FOR que eu tenho o insert vou precisar abrir o banco e fechar 12k...
Entendeu?
Att
Arthur
-
Arthur
no SQL vai conseuir executar esta sequencia de comando de uma unica vez, o problema talvez fique pela quantidade de caracteres da sua váriavel e o valor dela pode ser truncada...
Minha questão era, esses dados estão sendo originados de onde? se vc via C# conecta-se no SQL para executar uma lógica e depois gravar denovo em outra tabela... talvez vc possa fazer uma proc no proc sql que trata sua massa de dados e ja grava em lote...
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS, MCITP, MCT.
Se útil, classifique!!!
Me siga no twitter: @marcelodba -
Uma alternativa é utilizar o Bulk Insert.
Veja um exemplo aqui : http://blogs.msdn.com/b/nikhilsi/archive/2008/06/11/bulk-insert-into-sql-from-c-app.aspx
http://www.dotnetcurry.com/ShowArticle.aspx?ID=323
Um pouco mais sobre Bulk Insert.
http://msdn.microsoft.com/en-us/library/aa225968%28v=SQL.80%29.aspx
- Sugerido como Resposta ArmandoLacerdaMVP quarta-feira, 23 de janeiro de 2013 00:55
- Marcado como Resposta Ricardo Russo sexta-feira, 25 de janeiro de 2013 11:56