Welcome to Sign in | Help
in Search

SQL Server 2005 FROM

Last post 11-23-2008, 12:50 PM by crestinul. 4 replies.
Sort Posts: Previous Next
  •  11-12-2008, 11:06 AM 6139

    SQL Server 2005 FROM

    Salut,

    Intr-o singura comanda vreau sa vizualizez continutul mai multor tabele, fapt pentru care am facut un cursor, unde numele tabelelor le-am pus in coloana "nume_tabela" din tabela "__tabele".

     

    SET NOCOUNT ON

    DECLARE @nume varchar(50), @message varchar(80)

    PRINT '-------- UPDATE pentru [__tabele] --------'

    DECLARE tabela_mapare_cursor CURSOR FOR

    SELECT nume_tabela

    FROM [__tabele]

    ORDER BY nume_tabela

    OPEN tabela_mapare_cursor

    FETCH NEXT FROM tabela_mapare_cursor

    INTO @nume

    WHILE @@FETCH_STATUS = 0

    BEGIN

    select * from @nume

     

    PRINT ' '

    SELECT @message = '----- S-a facut SELECT pentru: ' + @nume

    PRINT @message

    FETCH NEXT FROM tabela_mapare_cursor

    INTO @nume

    END

    CLOSE tabela_mapare_cursor

    DEALLOCATE tabela_mapare_cursor

     

    Problema este ca nu pot folosi comanda "select * from @nume". Mai trebuie ceva si nu stiu ce anume. Ma poate ajuta cineva?

    Multumesc anticipat.

    Filed under:
  •  11-12-2008, 11:13 AM 6140 in reply to 6139

    Re: SQL Server 2005 FROM

    PRINT @message

    exec (@message) -- ma rog, ar trebui sa scoti comentariile ...


    Apropo :stiai de sys.tables , nu ?


    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  11-12-2008, 11:15 AM 6141 in reply to 6139

    Re: SQL Server 2005 FROM

    gelucoman70:

    Problema este ca nu pot folosi comanda "select * from @nume".



    Vezi: http://www.sommarskog.se/dynamic_sql.html#Dyn_table
    (citeşte cu atenţie articolul, că e interesant... s-ar putea să afli că ceea ce vrei să faci nu e bine, chiar dacă e posibil...)

    Răzvan
  •  11-14-2008, 5:54 PM 6172 in reply to 6141

    Re: SQL Server 2005 FROM

    Va multumesc foarte mult. Nu voi folosi in productie asa ceva, doar pentru un client care nu trebuie sa foloseasca prea multe comenzi, pentru a face o sumara vizualizare in anumite tabele.

    Am renuntat la comentarii si dupa o discutie si cu Gigi, am ajuns la concluzia ca tot ce am de facut este sa folosesc in cursorul meu, comanda:

    "EXEC ('SELECT * FROM ' + @nume)"

    in loc de comanda "select * from @nume".

     

    Numai bine.

  •  11-23-2008, 12:50 PM 6219 in reply to 6172

    Re: SQL Server 2005 FROM

    alta solutie ar fi sa foloseasca "executing multiple sql statement' using a DataReader cu ado.dot net framework

    using(SqlConection sqlcon=new SqlConnection("your connection string)

    {

    SqlCommand comanda=New SqlCommand(sqlcon);

    comanda.CommndText="select * from tabela1;...select * from tabelan";

    SqlDataReaderreader =comanda.ExecuteReader();

    bool MoreResult=false;

    StringBuilder results=New StringBuilder();

    do

    {

    while(reader.read())

    {

    for (int i=0;i++;i<reader.FiledCount)

    result.append(readerIdea.toString()+"\n");//aici preiei datele tabelei i

    MoreResults=reader.nextResult();

    }

    while(Moreresults)

    }

    }


    Secolul XXI ori va fi religios ori nu va fi deloc
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems