Announcement

Collapse
No announcement yet.

Datenbank als @ Variable übergeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank als @ Variable übergeben

    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)
    .
    .
    .

  • #2
    Hallo!

    Soweit ich weiss, gibt es keine Alternative zu deiner 'umstaendlichen' Loesung.
    *-- robert.oh. --*

    Comment


    • #3
      Vielleicht kannst du es mit SYNONYM lösen, zB so:

      declare @s varchar(20)
      set @s = 'personTable'
      exec('create synonym PT for ' + @s)
      select count(*) from PT
      drop synonym PT

      bye,
      Helmut

      Comment


      • #4
        hi,

        vielen dank für den tipp mit dem synonym.
        das funktioniert perfekt.

        LG schnurzli

        Comment

        Working...
        X