20 Stimmen

SQL-Abfrage verwenden, um festzustellen, ob eine Tabelle existiert

Jungs, gibt es noch eine andere Möglichkeit, um festzustellen, ob eine Tabelle vorhanden ist, als die folgende

  1. select count(*) from <table> where rownum =1
  2. select * from user_table where table_name=<table>

Lassen Sie mich bitte wissen, wie ich am besten überprüfen kann, ob eine Tabelle mit Oracle Sql existiert.

Vielen Dank für die Antwort, meine Anforderung ist es, vom ersten Datum des aktuellen Monats dh 01/12/2010 mit Tabellennamen im Format suresh_20101201 in der Datenbank vorhanden ist, wenn nicht dann sollte es für Tabelle suresh_20101202 und darauf bis suresh_20101231 überprüfen. ist es möglich, in Oracle Sql-Abfrage zu tun.

36voto

Dainius Punkte 1715

Sie können dies tun (in Oracle, in mssql ist es ein bisschen anders):

select count(*)
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'your_table_name';

1voto

wallyk Punkte 55322

In den meisten Sql-Servern gibt es eine Systemdomäne, in der Sie die Existenz einer Tabelle abfragen können. Dies ist jedoch sehr implementierungsspezifisch. Zum Beispiel, in neueren Versionen von MySql :

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  AND table_name LIKE 'whatever'

1voto

UserControl Punkte 14153

Sie müssen den Systemkatalog Ihres Servers befragen. Ich bin mir nicht sicher, welche Datenbank Sie meinen, aber für SQL Server wäre das der Fall:

select * from sys.tables where name='your-table-name-'

1voto

vapcguy Punkte 6445

Dies wird in Oracle SQL Developer verwendet:

SELECT COUNT(*) FROM DUAL WHERE EXISTS (
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = 'myschema' AND OBJECT_NAME = 'your_table_name')

Dies gibt entweder ein 0 o 1 ob Ihre Tabelle existiert oder nicht in der ALL_OBJECTS Aufzeichnungen.

1voto

Neeraj Punkte 151

Nachfolgende Abfrage kann an Oracle ausgelöst werden, um zu prüfen, ob eine Tabelle in der DB vorhanden ist oder nicht:

SELECT count(*) count FROM dba_tables where table_name = 'TABLE_NAME'

Die obige Abfrage wird die Anzahl 1 zurückgeben, wenn die Tabelle 'TABLE_NAME' in der Datenbank vorhanden ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X