Migrando dados do banco de dados local do SQLEXPRESS para o SQL Azure

1

Eu tenho um processo que está importando dados de arquivos CSV para um SQL Express DB local, então posso usar a ferramenta de migração do SQL Server 2012 para migrar o banco de dados para o SQL Azure (conforme descrito em link ). Funciona muito bem para mover um banco de dados.

No entanto, é um pouco difícil quando os dados mudam e quero apenas refrescar o banco de dados. Tentei alterar meus scripts que fazem isso apenas para se conectar ao banco de dados do SQL Azure, mas corri para o problema que o SQL Azure aparentemente não suporta BCP:

Msg 40526, Level 16, State 1, Server Xxxxxx, Line 37
'BULK' rowset provider not supported in this version of SQL Server.

Estou voltando a importar para o SQL Express, descartando o banco de dados, exportando-o do SQL Express e, em seguida, recriando os usuários e funções do banco de dados.

Alguém tem uma maneira melhor?

    
por Mike Kelly 25.03.2013 / 22:29

1 resposta

1

De acordo com a documentação do Azure, você deve conseguir importar dados usando o comando BCP. consulte: BCP e SQL Azure

Para confirmar que estava funcionando, também fui testá-lo. Para o meu teste, inseri 10 linhas de dados do meu arquivo csv chamado import.txt . Usei a sintaxe -t, para especificar que ela era delimitada por vírgula.

Aqui está a sintaxe (redigida) do comando que usei:

bcp database_name.schema.table in C:\import.txt -c -U username@servername -S servername.database.windows.net -P password -t,

A partir daqui, pude ver os seguintes resultados

Starting copy...

10 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 390    Average : (25.64 rows per sec.)

Eu vi alguns casos em que inserir uma quantidade muito grande de dados pode causar a falha da importação, mas isso provavelmente seria um erro diferente do que você está vendo.

    
por 02.04.2013 / 17:20