J'aimerais que ce soit la discussion ultime sur la façon de vérifier si une table existe dans SQL Server 2000/2005 en utilisant des instructions SQL.
Lorsque vous cherchez la réponse sur Google, vous obtenez tellement de réponses différentes. Existe-t-il une manière officielle/rétroactive et compatible avec le futur de le faire ?
Voici deux façons possibles de le faire. Laquelle de ces deux façons est la plus standard/la meilleure ?
Premier moyen :
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;
Deuxième voie :
IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL
SELECT 1 AS res ELSE SELECT 0 AS res;
MySQL fournit le simple
SHOW TABLES LIKE '%tablename%';
déclaration. Je suis à la recherche de quelque chose de similaire.
2 votes
Pourquoi est-il préférable d'utiliser INFORMATION_SCHEMA.TABLES au lieu de sys.tables puis de filtrer avec le nom et éventuellement d'ajouter une vérification de la valeur de type_desc ?