У меня есть процесс, который импортирует данные из файлов CSV в локальную базу данных SQL Express, затем я могу использовать средство миграции SQL Server 2012 для миграции базы данных в SQL Azure (как описано в http://bit.ly/WRPSZs). Он отлично подходит для перемещения базы данных.
Однако когда данные меняются, а я просто хочу освежить БД, это немного неприятно. Я попытался изменить свои сценарии, которые делают это, чтобы просто подключиться к базе данных SQL Azure, но столкнулся с проблемой, что SQL Azure явно не поддерживает BCP:
Msg 40526, Level 16, State 1, Server Xxxxxx, Line 37
'BULK' rowset provider not supported in this version of SQL Server.
Итак, я вернулся к импорту в SQL Express, затем отбрасываю БД, экспортирую ее из SQL Express, а затем перехожу и воссоздаю пользователей и роли БД.
У кого-нибудь есть способ лучше?
Согласно документации Azure, вы должны иметь возможность импортировать данные с помощью команды BCP. видеть: BCP и SQL Azure
Чтобы убедиться, что он работает, я также пошел и протестировал его. Для своего теста я вставил 10 строк данных из моего файла csv под названием import.txt. Я использовал -t, синтаксис, указывающий, что он был разделен запятыми.
Вот (отредактированный) синтаксис команды, которую я использовал:
bcp database_name.schema.table in C:\import.txt -c -U username@servername -S servername.database.windows.net -P password -t,
Отсюда я мог видеть следующие результаты
Starting copy...
10 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 390 Average : (25.64 rows per sec.)
Я видел несколько случаев, когда вставка очень большого количества данных могла привести к сбою импорта, но, вероятно, это была бы другая ошибка, чем то, что вы видите.