Ich habe zwei verschiedene Datenbanken und brauche Informationen von beiden DBs. Ich schaffte es, die Daten wie folgt zu erhalten:Azure SQL - Ansicht mit Abfrage über mehrere Datenbanken erstellen
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'
);
Von hier aus kann ich jetzt select
, join
, und vieles mehr. (Employee-Tabelle stammt aus dem anderen DB (die, die ich bin Abfrage))
select e.Name, e.Role, d.Name from Employee as e inner join
RemoteDepartment as d on d.ID = e.DepartmentId
Mit der folgenden Ausgabe
|---Name---|---Role---|---Name--|
| Louise | Manager | HR |
| Tim | Finances | Admin |
Hier ist mein Problem. Während dies alles sehr nett und schnell funktioniert, kann ich nicht meinen Kopf herumschleppen oder irgendwelche Ressourcen online finden, wie man Ansichten erzeugt, indem man diese Methode benutzt, um zwei getrennte DBs abzufragen.
Ich habe versucht, die folgenden:
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
Aber einen Compiler-Fehler bekommen
falsche Syntax zu sagen: 'CREATE VIEW' muss die einzige Anweisung im Batch sein
Ich habe versucht, alles außer der select
Anweisung zu entfernen, aber das funktioniert nicht (der Compiler hat keine Ahnung, was RemoteDepartment
ist eigentlich)
Sorry, Sie sagen, dass Sie zwei verschiedene Datenbanken haben, aber ich sehe nur 2 Tabellen in einer Datenbank 'testDB_Dev' –
Ja natürlich. Ich habe den Beitrag bearbeitet. Die Tabelle "Employee" stammt aus der Datenbank, die abgefragt wird. Meine Entschuldigung – Detilium
Ich schlage vor, Sie erstellen die 2 Tabellen in einer Datenbank, sonst, mit 2 Datenbanken verschwenden zu viel Ressource –