我有一个将数据从 CSV 文件导入本地 SQL Express DB 的过程,然后我可以使用 SQL Server 2012 迁移工具将数据库迁移到 SQL Azure(如http://bit.ly/WRPSZs)它对于移动数据库非常有用。
但是,当数据发生变化而我只想刷新数据库时,这有点麻烦。我尝试更改执行此操作的脚本以仅连接到 SQL Azure DB,但遇到了 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,然后删除 DB,从 SQL Express 导出它,然后重新创建 DB 用户和角色。
谁有更好的办法?
答案1
根据 Azure 文档,您应该能够使用 BCP 命令导入数据。请参阅:BCP 和 SQL Azure
为了确认它能正常工作,我也去测试了它。为了进行测试,我从名为导入.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.)
我见过一些情况,插入大量数据可能会导致导入失败,但这可能与您看到的错误不同。