当前位置: 首页 > 面试题库 >

检查表在SQL Server中是否存在

楚俊杰
2023-03-14
问题内容

我希望这是关于如何使用SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论。

当您用Google搜索答案时,会得到很多不同的答案。有官方/后向和向前兼容的方式吗?

这是两种可能的方法。两种方法中的哪一种是标准/最佳方法?

第一种方式:

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%'; 

陈述。我正在寻找类似的东西。


问题答案:

对于此类查询,最好始终使用INFORMATION_SCHEMA视图。这些视图(大多数情况下)是跨许多不同数据库的标准视图,并且很少因版本而异。

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

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


 类似资料:
  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 如果表已经存在,如何检查TarantoolSQL?

  • 我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultSetObject进行我想要的验证吗?

  • 问题内容: 我正在使用C#根据bigquery api表端点的响应动态构建查询。我正在尝试计算有效的活动用户,但前提是我必须选择具有的每个表。我的问题确实很简单,有没有一种方法可以检查BigQuery SQL中是否存在表? 问题答案: 有元表叫和 您可以运行如下查询: 该查询的一部分可能看起来并不熟悉。是一个元表,其中包含有关数据集中表的信息。您可以自己使用此元表。例如,查询将返回有关数据集中表的

  • 问题内容: 我有一个使用Flask-SQLAlchemy连接到MySQL数据库的Flask应用程序。 我希望能够检查表中是否存在行。我将如何修改查询以检查行是否存在: 我找到了一个使用SQLAlchemy的问题的解决方案,但似乎不适合Flask-SQLAlchemy的工作方式: 问题答案: 由于你只想查看用户是否存在,因此你不想查询整个对象。只需查询id,如果标量返回不为None,它就存在。 你显

  • 问题内容: 我正在通过.NET应用程序中的ODBC驱动程序连接到Hive。是否存在查询以确定表是否已存在? 例如,在MSSQL中,您可以查询表,而在Netezza中,您可以查询表。 任何援助将不胜感激。 问题答案: 您可以通过两种方法进行检查: 1.)如@dimamah所建议,只需在此处添加一点,对于这种方法,您需要 2.)第二种方法是使用HiveMetastoreClient API,您可以在其