Hi.
Ich habe ein DB Skript für SQL 2005 in welchem ich oft die Datenbank angeben muss, da ich Datenbankübergreifene Abfragen erstelle.
Gibt es eine Möglichkeit mit DECLARE und SET einfach einmal den DB Namen einzugeben und dann nur noch mit @DB aufzurufen?
Also anstelle von:
select * from DBNAME1.dbo.tabelle1
select * from DBNAME2.dbo.tabelle2
.
.
.
So:
DECLARE @DB1 nvarchar(50)
SET @DB1 = 'DBNAME1'
DECLARE @DB2 nvarchar(50)
SET @DB2 = 'DBNAME2'
select * from @DB.dbo.tabelleA
select * from @DB.dbo.tabelleA
.
.
.
Natürlich kommt im eigentlichen Skript die Auswahl der DB öfters vor als im Beispiel ;-)
Ich habe diese Lösung entdeckt, ist aber irgendwie umständlich.
Gibt es dazu eine Alternative?
DECLARE @Query nvarchar(255)
DECLARE @DB1 nvarchar (50)
SET @DB1='DBNAME1'
SET @Query = 'SELECT * from '+@DB+' where spalte1 = 22'
EXEC(@Query)
.
.
.
Ich habe ein DB Skript für SQL 2005 in welchem ich oft die Datenbank angeben muss, da ich Datenbankübergreifene Abfragen erstelle.
Gibt es eine Möglichkeit mit DECLARE und SET einfach einmal den DB Namen einzugeben und dann nur noch mit @DB aufzurufen?
Also anstelle von:
select * from DBNAME1.dbo.tabelle1
select * from DBNAME2.dbo.tabelle2
.
.
.
So:
DECLARE @DB1 nvarchar(50)
SET @DB1 = 'DBNAME1'
DECLARE @DB2 nvarchar(50)
SET @DB2 = 'DBNAME2'
select * from @DB.dbo.tabelleA
select * from @DB.dbo.tabelleA
.
.
.
Natürlich kommt im eigentlichen Skript die Auswahl der DB öfters vor als im Beispiel ;-)
Ich habe diese Lösung entdeckt, ist aber irgendwie umständlich.
Gibt es dazu eine Alternative?
DECLARE @Query nvarchar(255)
DECLARE @DB1 nvarchar (50)
SET @DB1='DBNAME1'
SET @Query = 'SELECT * from '+@DB+' where spalte1 = 22'
EXEC(@Query)
.
.
.
Comment