2017-05-22 87 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