Qual comando usar para verificar se uma tabela existe

19/11/2007

0

Necessito de um comando que me informe se uma tabela já está criada ou não.

Uso Delphi7 com Sql sewrver (MSDE).

Obrigado


Rounilo

Rounilo

Responder

Post mais votado

15/01/2008

crie uma query com
SELECT * FROM dbo.SYSOBJECTS WHERE XTYPE = ´U´ AND NAME = :tabela

sua função vai ser

functin tabelaExiste(tab: string): boolean;
begin 
  qry.Close;
  qry.ParamByName(´tabela´) = tab;
  qry.Open;
  Result := not qry.IsEmpty;
  qry.Close;
end;



Djjunior

Djjunior
Responder

Mais Posts

19/11/2007

Ara.es

vc pode usar isso:

SELECT *
FROM SYSOBJECTS
WHERE XTYPE = ´U´
AND NAME = ´NOME_TABELA´

substituia o ´NOME_TABELA´, pelo nome da sua tabela, essa tabela Sysobjects, guarda os objetos criados, nela vc tem as tabelas do usuario e do sistema, alem de as primary keys, foreign keys e etc... de um select nela e veja que as tabelas tem o xType = ´U´ e as foreign keys tem xType = ´F´, Primary Keys tem = ´PK´ assim vc pode listar qualquer objeto do seu banco.. Flw!!


Responder

20/11/2007

Rounilo

No SQL Query Analyzer o comando informado por vc ´if exists (SELECT * FROM dbo.SYSOBJECTS WHERE XTYPE = ´U´ AND NAME = ´DAMS´)
then
print ´Tabela existe´
else
print ´Tabela não exite.´;´ funciona.

Entrtanto, quando crio uma pequena aplicação Delphi recebo mensagenas de erro.

procedure TForm1.Button1Click(Sender: TObject);
begin
if exists (SELECT * FROM dbo.SYSOBJECTS WHERE XTYPE = ´U´ AND NAME = ´DAMS´)
then
print ´Tabela existe´
else
print ´Tabela não exite.´;
end;
end.

ERROS
[Error] Unit1.pas(28): Undeclared identifier: ´exists´
[Error] Unit1.pas(28): Undeclared identifier: ´FROM´
[Error] Unit1.pas(37): Statement expected but end of file found
[Fatal Error] Project1.dpr(5): Could not compile used unit ´Unit1.pas´

O que devo fazer ?


Responder

18/01/2008

Rounilo

Ok.

Obrigado.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar