in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

Parametrizzare il DB su cui puntare

Last post 07-06-2007 10.37 by s.greci. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 07-06-2007 10.04

    Parametrizzare il DB su cui puntare

    Ciao a tutti.

    SCENARIO di esempio:
    . 100 Societa' dello stesso settore.
    . 100 Db con la stessa identica struttura.
    . 1 DbServer su cui stanno tutti i Db.

    ESIGENZA:
    Ho bisogno di creare lo stesso identico report per tutte le societa'.

    DOMANDA:
    Esiste un sistema veloce (che non sia il fare un datasource ed un report per ogni societa'/Db) che mi permetta di parametrizzare il tutto?

    Grazie in anticipo.

    CIao
    Ale aka Locura

    Filed under: ,
    • Post Points: 35
  • 07-06-2007 10.34 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.182
    • Points 15.485

    Re: Parametrizzare il DB su cui puntare

    Ciao Ale

    Certo che esiste Smile (con SQL Server 2005). All'interno di una ConnectionString puoi utilizzare una expression per definire al volo DB e Server alla quale puntare per prelevare i dati del tuo report. 

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    Filed under:
    • Post Points: 5
  • 07-06-2007 10.37 In reply to

    • s.greci
    • Top 25 Contributor
      Male
    • Joined on 05-16-2007
    • Alba (CN)
    • Posts 101
    • Points 1.020

    Re: Parametrizzare il DB su cui puntare

    Ciao Locura,

    esistono diverse soluzioni al tuo problema. Una soluzione veloce e senza troppo "overhead" potrebbe essere quella di creare una stored procedure che accetti come parametro il nome del database e componga dinamicamente una stringa SQL. Un esempio qui sotto:

    USE AdventureWorks
    GO

    CREATE PROCEDURE ReportMultiDB

    @db_name    VARCHAR(200),
    @class        CHAR(1)

    AS

    DECLARE
        @sql_string VARCHAR(8000)

    SET @sql_string = '
    SELECT * FROM ' +  @db_name + '.Production.Product WHERE Class = ''' + @class + ''''

    EXEC (@sql_string)
    GO

    EXEC ReportMultiDB 'AdventureWorks', 'L'
    GO

     

    Simone Greci
    SQL Server MCP, MCTS
    http://community.ugiss.org/blogs/s.greci/
    BI Specialist @ Solid Quality Learning Italy
    • Post Points: 5
Page 1 of 1 (3 items)
(C) 2007 User Group Italiano di SQL Server