我试图将数据库从本地SQL服务器(SQL 2008 R2)迁移到Azure SQL安装。
使用我在网上找到的迁移工具,它突出显示了Azure中某些功能不可用的问题,主要的问题是BULK INSERT。
此后,我已通过调用xp_cmdshell来使用BCP替换了此功能。
我现在收到一个错误,指出天蓝色无法使用xp_cmdshell!
DECLARE @BCPString VARCHAR(255) = 'BCP ' + @DatabaseName + '.dbo.TEMP IN ' + @Path + ' -c -t "," -r "0x0a" -S ' + @ServerName + ' -T' EXEC xp_cmdshell @BCPString, no_output
“当前版本的Azure SQL数据库不支持xp_cmdshell”
是否有人知道在SQL 2008 R2和Azure SQL中都可用的批量导入数据的解决方法或其他方法?
我需要执行的导入很简单,它创建了一个表,进行了导入,然后该过程处理了其余的过程,之后删除了该表。
您可以在Azure中使用批量插入。首先,您必须为blob创建一个外部数据源,如下所示
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);
Azure(在未来几个月中)将支持一个SQLAZURE托管实例(当前正在预览),就像具有SQLAGent,CLR和其他内容的OnPremises SQLServer一样
Microsoft / sql-server-samples