2016-05-31 3 views
1

私は2つの異なるデータベースを持っており、両方のDBの情報が必要です。私はこのようなデータを得ることができた:Azure SQL - 複数のデータベースを介してクエリを含むビューを作成します。

create master key encryption by password = 'test' 

create database scoped crendetial testcredentials with identity = '[email protected]', secret = '[email protected]' 

-- CREATE DATA SOURCE -- 
create external data source RemoteDataSource with 
(
    type = RDBMS, 
    location = 'secret.database.windows.net', 
    database_name = 'testDB_Dev', 
    credential = testcredentials 
) 

-- CREATE TABLES -- 
create external table [RemoteDepartment] 
(
    [ID] [int], 
    [Name] [nvarchar](50) 
) 
with 
(
    data_source = RemoteDataSource, 
    schema_name = 'dbo', 
    object_name = 'Department' 
); 

ここからは私がすることができ、今selectjoin、とはるかに。次の出力

|---Name---|---Role---|---Name--| 
| Louise | Manager | HR | 
| Tim | Finances | Admin | 

select e.Name, e.Role, d.Name from Employee as e inner join 
    RemoteDepartment as d on d.ID = e.DepartmentId 

Employeeテーブルには、他のDB(私が照会しています1)から来ている)ここでは私の問題です。これはすごく素早く動いていますが、2つの別々のDBを照会するこの方法を使ってビューを作成する方法については、私の周りを包み込むか、リソースをオンラインで見つけることはできません。

私は次のことを試してみました:

create master key encryption by password = 'test' 

create database scoped crendetial testcredentials with identity = '[email protected]', secret = '[email protected]' 

-- CREATE DATA SOURCE -- 
create external data source RemoteDataSource with 
(
    type = RDBMS, 
    location = 'secret.database.windows.net', 
    database_name = 'testDB_Dev', 
    credential = testcredentials 
) 

-- CREATE TABLES -- 
create external table [RemoteDepartment] 
(
    [ID] [int], 
    [Name] [nvarchar](50) 
) 
with 
(
    data_source = RemoteDataSource, 
    schema_name = 'dbo', 
    object_name = 'Department' 
); 

CREATE VIEW test_view AS 
    select e.Name, e.Role, d.Name from RemoteEmployee as e inner join 
     RemoteDepartment as d on d.ID = e.DepartmentId 

しかし、不適切な構文

を言ってコンパイルエラーを取得: 'VIEWを作成し' バッチ

で唯一のステートメントでなければなりません私はselectステートメント以外のすべてを削除しようとしましたが、これはうまくいきません。コンパイラには何も分かりませんRemoteDepartmentは実際にはです)

+0

申し訳ありませんが、あなたは2つの異なるデータベースを持っていると言いますが、私は1つのデータベース 'testDB_Dev'に2つのテーブルしか見ない –

+0

もちろんあります。私はその投稿を編集した。テーブル「Employee」は照会されているdbから来ます。私の謝罪 – Detilium

+0

2つのテーブルを1つのデータベースに作成することをお勧めします。そうでなければ、2つのデータベースを使用してリソースを浪費します。 –

答えて

-1

これは、Azure SQL DBインスタンスでデータベース間の照会を行うことができないという単純なケースのようです。

+0

しかし私はすることができますか?私が書いたことを読んだことはありますか?データを取得できますが、ビューを作成することはできません。 – Detilium

関連する問題