为了账号安全,请及时绑定邮箱和手机立即绑定

检查SQLServer中是否存在表

检查SQLServer中是否存在表

汪汪一只猫 2019-06-24 10:03:35
检查SQLServer中是否存在表我希望这是关于如何使用SQL语句检查SQLServer 2000/2005中是否存在表的最终讨论。当你在谷歌上搜索答案时,你会得到很多不同的答案。是否有一种正式/向后/向前兼容的做法?这里有两种可能的方法。这两种方法中哪一种是标准/最好的方法?第一条路: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;第二条路:IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL     SELECT 1 AS res ELSE SELECT 0 AS res;MySQL提供简单的SHOW TABLES LIKE '%tablename%';声明。我在找类似的东西。
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

对于这样的查询,最好使用INFORMATION_SCHEMA视野。这些视图(主要是)在许多不同的数据库中都是标准的,很少在不同版本之间进行更改。

若要检查表是否存在,请使用:

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))BEGIN
    --Do StuffEND


查看完整回答
反对 回复 2019-06-24
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

还请注意,如果出于任何原因需要检查临时表,则可以这样做:

if OBJECT_ID('tempdb..#test') is not null
 --- temp table exists


查看完整回答
反对 回复 2019-06-24
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我们总是使用OBJECT_ID风格我记得很久了

IF OBJECT_ID('*objectName*', 'U') IS NOT NULL


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 1125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信