como listar todas tabelas de um banco de dados SQL SERVER?
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
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
Curtidas 0
Respostas
Nilsonalvernaz
12/08/2004
não entendi, vc quer pesquisar somente? pode usar sp_help no query analyzer
GOSTEI 0
Paullus
12/08/2004
Como você está fazendo a conexão com o banco? ADO, BDE, ODBC,...
Se for por ADO o código abaixo resolve:
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:
Se precisar que eu seja mais claro é só falar. 8)
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]); Query.Active := true; for j := 0 to (Query.Fields.Count - 1) do ShowMessage(Query.Fields.Fields[i].FieldName);
Se precisar que eu seja mais claro é só falar. 8)
GOSTEI 0
Paullus
12/08/2004
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].FieldName);
ShowMessage(Query.Fields.Fields[j].FieldName);
Errei aí em cima.
GOSTEI 0
Tg_luciano
12/08/2004
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)
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)
GOSTEI 0
Balceiro
12/08/2004
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.
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.
GOSTEI 0