Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
HQuintas

Exportar e importar tabelas no SQL Server

Recommended Posts

HQuintas

Bom dia

Precisava de umas sugestões para exportar várias tabelas do sql server para um ficheiro (txt por exemplo, ou outro) e depois voltar a importar essas mesmas tabelas.

Usaria a classe SqlBulkCopy ? como?

Obrigado

Share this post


Link to post
Share on other sites
HQuintas

Boas

PSantos10 isso faz uma cópia da base de dados toda. (A base de dados tem perto de 7GB)

E eu só quero copiar alguns dados de algumas tabelas (umas 30). E quero fazer essa cópia para um unico ficheiro.

Estava a pensar em criar uma base dados em SQLce ou SQLite e depois ai importar e exportar os dados entre SQLserver. Mas queria algo que fosse rápido, do tipo

EXEC MASTER.DBO.XP_CMDSHELL'bcp "select * from BD.Tabela" queryout "c:\MyData.txt" -c -t"," -r"\n" -S HELDER-PC\SERVER -T'

(Mas as várias tabelas para um unico ficheiro.)

Share this post


Link to post
Share on other sites
pt_V1p3r

Bem e que tal usares o BCP http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx

Podes simplesmente atraves do vb correr este utilitario com os argumentos que necessitas, eu ja o usei em alguns programas e este utilitario em termos de rapidez é fenomenal, e quando guardas os dados que queres ele proprio cria um ficheiro com tudo armazenado.

Fora isso so mesmo à 'unha' :-)

Share this post


Link to post
Share on other sites
HQuintas

Boas

Estava a tentar resolver assim:

Imports System.Data.SqlClient
Imports System.Data.SqlServerCe

Public Class Form1
   Dim connectionstring = "Data Source=HELDER-PC\QUINTAS;Initial Catalog=Expo;Integrated Security=SSPI;"
   Dim connectionstring_destino = "Data Source='C:\Users\Helder\Desktop\Expo.sdf';"
   Private da As SqlCeDataAdapter

   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
       Dim origem As SqlConnection = New SqlConnection(connectionstring)
       Dim destino As SqlCeConnection = New SqlCeConnection(connectionstring_destino)
       Dim da_origem As SqlDataAdapter
       Dim ds_origem As DataSet
       Dim da_destino As New SqlCeDataAdapter
       Dim ds_destino As New DataSet
       Dim dt_origem As New DataTable
       Dim dt_destino As New DataTable
       origem.Open()
       destino.Open()

       Dim sql As String = "Select * from dbo.Tabela"


       da_origem = New SqlDataAdapter(sql, origem)

       ds_origem = New DataSet

       da_origem.Fill(dt_origem)
       dt_destino = dt_origem.Copy

       Me.DataGridView1.DataSource = dt_destino

       Dim cb As New SqlCeCommandBuilder(da_destino)
       da_destino.Update(ds_destino, "dbo.Tabela")
       destino.Close()
       origem.Close()
       MsgBox("ok")
   End Sub
End Class

Mas como gravo na tabela destino os dados?

A tabela tem o mesmo nome (dbo.Tabela) e os mesmos campos.

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.