2017-05-22 89 views
0

我正在尝试将数据库从本地SQL服务器(SQL 2008 R2)迁移到Azure SQL安装。迁移到Azure SQL(BCP)

使用我在网络上找到的迁移工具,它突出了一些问题,其中Azure中的功能不可用,主要是BULK INSERT。

我已经用调用xp_cmdshell来使用BCP来替换此功能。

我现在正在收到xp_cmdshell在azure中不可用的错误消息!

DECLARE @BCPString VARCHAR(255) = 'BCP ' + @DatabaseName + '.dbo.TEMP IN ' + @Path + ' -c -t "," -r "0x0a" -S ' + @ServerName + ' -T' 

EXEC xp_cmdshell @BCPString, no_output 

有谁知道解决方法或其他方法来批量导入数据是可用的两个SQL 2008 R2和“xp_cmdshell的不Azure中的SQL数据库的当前版本的支持。” Azure SQL?

我需要执行的导入很简单,它创建一个表,导入,然后该过程处理剩下的表,然后删除表。

+0

从现代版本的SQL Server Management Studio(SSMS)中,您只需右键单击数据库并将其部署到Azure。 – wBob

回答

1

您可以使用Azure.First批量插入您必须创建一个外部数据源的斑点像下面

CREATE EXTERNAL DATA SOURCE MyAzureInvoicesContainer 
    WITH (
     TYPE = BLOB_STORAGE, 
     LOCATION = 'https://newinvoices.blob.core.windows.net/week3', 
     CREDENTIAL = UploadInvoices 
    ); 

现在你可以使用BULKINSERT像下面

BULK INSERT tablename 
FROM 'product.csv' 
WITH ( DATA_SOURCE = 'MyAzureBlobStorage', 
     FORMAT='CSV', CODEPAGE = 65001, --UTF-8 encoding 
     FIRSTROW=2, 
     TABLOCK); 

天青(以即将到来的几个月)支持SQLAZURE托管实例(目前正在预览中),这与OnPremises SQLServer与SQLAGent,CLR和东西相同

Microsoft/sql-server-samples

+1

虐待这个试试看,谢谢你的快速反应 – user1948635