Ich möchte, dass dies die ultimative Diskussion darüber ist, wie man überprüft, ob eine Tabelle in SQL Server 2000/2005 mit SQL-Anweisungen existiert.
Wenn man nach der Antwort googelt, bekommt man so viele verschiedene Antworten. Gibt es eine offizielle/abwärts- und vorwärtskompatible Methode, dies zu tun?
Hier sind zwei Möglichkeiten, wie man das machen kann. Welcher der beiden Wege ist der Standard bzw. der beste Weg, dies zu tun?
Erster Weg:
IF EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
AND TABLE_NAME='mytablename')
SELECT 1 AS res ELSE SELECT 0 AS res;
Zweiter Weg:
IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL
SELECT 1 AS res ELSE SELECT 0 AS res;
MySQL bietet die einfache
SHOW TABLES LIKE '%tablename%';
Erklärung. Ich bin auf der Suche nach etwas Ähnlichem.
2 Stimmen
Warum ist es am besten, INFORMATION_SCHEMA.TABLES anstelle von sys.tables zu verwenden und dann nach dem Namen zu filtern und vielleicht eine type_desc-Wertprüfung hinzuzufügen?