【问题标题】:Migrating to Azure SQL (BCP)迁移到 Azure SQL (BCP)
【发布时间】:2017-05-22 23:28:19
【问题描述】:

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

使用我在网上找到的迁移工具,它突出了 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

“当前版本的 Azure SQL 数据库不支持 xp_cmdshell”

有谁知道批量导入数据的解决方法或其他方法,可在 SQL 2008 R2 和 Azure SQL 中使用?

我需要执行的导入很简单,它创建一个表,导入,然后程序处理其余部分,然后删除表。

【问题讨论】:

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

标签: sql azure-sql-database


【解决方案1】:

您可以在 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

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 2014-03-21
    • 1970-01-01
    • 2017-04-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多