2016-09-09 22 views
0

あるデータベーステーブルのデータをAzure SQLの別のデータベーステーブル(同じサーバー上)に挿入しようとしています。私は、以下を参照してください。Azure SQLでデータベース間を照会

https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/

これは私が次のことを行うことができるはずということについて説明します。

CREATE EXTERNAL DATA SOURCE RemoteReferenceData 
WITH 
(
    TYPE=RDBMS, 
    LOCATION='myserver.database.windows.net', 
    DATABASE_NAME='_2016-09-07-17412', 
    CREDENTIAL= SqlUser 
); 

CREATE EXTERNAL TABLE [dbo].[RemotePhotos](
    [PhotoId] int NOT NULL, 
    [Url] nvarchar(max) NULL, 
) 
WITH 
(
    DATA_SOURCE = RemoteReferenceData 
); 

私はこれを実行すると、私は次のことを得るしかし:

指定された資格情報が見つかりません。

この目的のために資格情報を作成するにはどうすればよいですか?これについてもっと良い方法がありますか?これは私がなってしまったものです

+0

これは役立つかもしれません。https://msdn.microsoft.com/library/mt270260.aspx –

答えて

4

-- Cleanup 
DROP EXTERNAL TABLE OldPhoto 
DROP EXTERNAL DATA SOURCE RemoteReferenceData 
DROP DATABASE SCOPED CREDENTIAL credentialName 
DROP MASTER KEY 
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'; 

CREATE DATABASE SCOPED CREDENTIAL credentialName 
WITH IDENTITY = 'credentialName', 
SECRET = 'password'; 

CREATE EXTERNAL DATA SOURCE RemoteReferenceData 
WITH 
(
    TYPE=RDBMS, 
    LOCATION='myserver.database.windows.net', 
    DATABASE_NAME='mydb', 
    CREDENTIAL= credentialName 
); 

CREATE EXTERNAL TABLE dbo.OldPhoto(
    [PhotoId] [int] NOT NULL, 
    [Url] [nvarchar](300) NULL 
) 
WITH 
(
    DATA_SOURCE = RemoteReferenceData 
); 

Select top 20 * from dbo.OldPhoto 

挑戦のビットがあった。私は同じ名前を持っていたテーブルでバックアップからデータを引っ張った

  • 。ソーステーブルの名前を変更する必要がありました。
  • テーブルの作成は、外部ソースの現在のテーブルのスキーマと一致する必要があります。
+1

私が使用した資格情報には、有効なSQLサーバーアカウントのユーザー名とパスワードソースデータベースからレコードを選択します。 – Karl

関連する問題