我希望这是关于如何使用它的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