回答

收藏

检查表在SQL Server中是否存在

技术问答 技术问答 317 人阅读 | 0 人回复 | 2023-09-14

我希望这是关于如何使用它的SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论。! b, n% F2 L8 H$ g3 Z' d5 A
当您用Google搜索答案时,会得到很多不同的答案。有官方/后向和向前兼容的方式吗?6 y  O2 Q2 [4 p! v) O
这是两种可能的方法。两种方法中哪一种是标准/最佳方法?% j2 W& \; j. P- K
第一种方法:- g/ E% {7 ^; t4 d+ J7 F. j
IF EXISTS (SELECT            FROM INFORMATION_SCHEMA.TABLES            WHERE TABLE_TYPE='BASE TABLE      AND TABLE_NAME='mytablename    SELECT 1 AS res ELSE SELECT 0 AS res;第二种方法:1 b  w+ O2 {# I' ?! ?$ r0 }1 V
IF OBJECT_ID (N'mytablename',N'U') IS NOT NULL    SELECT 1 AS res ELSE SELECT 0 AS res;MySQL提供的简单& Q4 i) B& v1 X
SHOW TABLES LIKE '%tablename%'; 陈述。我正在寻找类似的东西。
) c/ T, Y7 n# [  ]7 T% K5 b4 D& k                                                                $ d5 t7 @/ }2 g5 y4 s
    解决方案:                                                                ) r5 `* A0 X" n' U4 @( m/ X# u' x
                                                                对于此类查询,最好始终使用INFORMATION_SCHEMA视图。这些视图(大多数情况下)是许多不同数据库的标准视图,很少因版本而异。" M+ b$ I( p* X6 D; L; t
检查表是否存在,请使用:
2 F6 q+ o, j+ ]. o, ^IF (EXISTS (SELECT *                  FROM INFORMATION_SCHEMA.TABLES                  WHERE TABLE_SCHEMA = 'TheSchema           AND  TABLE_NAME = 'TheTable'))BEGIN    --Do StuffEND
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则