como listar todas tabelas de um banco de dados SQL SERVER?

12/08/2004

Olá,

estou desenvolvendo uma aplicação onde em determinado momento tenho que listar todas as tabelas de meu banco de dados SQL SERVER e depois listar todos os campos da tabela selecionada. O problema é que eu não tenho a minima idéia de como fazer isso.

aguardo uma ajuda.


balceiro


Balceiro

Respostas

12/08/2004

Nilsonalvernaz

não entendi, vc quer pesquisar somente? pode usar sp_help no query analyzer


Responder Citar

12/08/2004

Paullus

Como você está fazendo a conexão com o banco? ADO, BDE, ODBC,...

Se for por ADO o código abaixo resolve:

TADOConnection.GetTableNames(Tabelas);


Onde Tabelas é um objeto do tipo TStrings.

Ele retorna um lista com o nome de todas as tabelas do sistema. Para pegar os campos use o código abaixo:

        Query.Active := false;
        Query.SQL.Clear;
        Query.SQL.Add(´SELECT *´);
        Query.SQL.Add(´FROM ´ + Tabelas.Strings[i&93;);
        Query.Active := true;

        for j := 0 to (Query.Fields.Count - 1) do
          ShowMessage(Query.Fields.Fields&91;i&93;.FieldName);


Se precisar que eu seja mais claro é só falar. 8)


Responder Citar

12/08/2004

Paullus

for j := 0 to (Query.Fields.Count - 1) do ShowMessage(Query.Fields.Fields[i].FieldName);


Eu errei na hora de digitar este último trecho de código leia-se assim
        for j := 0 to (Query.Fields.Count - 1) do
          ShowMessage(Query.Fields.Fields[j&93;.FieldName);


ShowMessage(Query.Fields.Fields[j].FieldName);
Errei aí em cima.


Responder Citar

12/08/2004

Tg_luciano

Bom não sei se vai funcionar em SQL SERVER....
Mas no firebird... eu faço assim

pegar os nomes das tabelas criadas.

SELECT RDB$RELATION_NAME
FROM RDB$RELATIONS
WHERE ((RDB$SYSTEM_FLAG = 0) OR
(RDB$SYSTEM_FLAG IS NULL)) AND
(RDB$VIEW_SOURCE IS NULL)
ORDER BY RDB$RELATION_NAME

pegar todos fields da tabela

select
r.rdb$field_name as CAMPO
from rdb$relation_fields r
where (r.rdb$relation_name=:Tabela)


Responder Citar

12/08/2004

Balceiro

gente beleza...


já resolvi o problema...

estou usando o DBEXPRESS para conectar.

usei o seguinte código dentro da mminha TSQLQUERY: ´EXEC sp_tables´

isso já me retounou todas as tabelas do MSSQL SERVER.

de qualquer forma muito obrigado a todos que se prontificaram a me ajudar.


Responder Citar