首页 / 问答 / SQL Server数据库中如何使用SQL语句判断或者检测指定的表名是否存在?

SQL Server数据库中如何使用SQL语句判断或者检测指定的表名是否存在?

0

如题,在SQL Server数据库中,如何使用SQL语句判断或者检测指定的表名是否存在呢?

回复 [×]
提交评论
请输入评论内容

5 个回答

  • 0

    利用INFORMATION_SCHEMA视图来检测指定的表名是否存在,如下:

    IF (EXISTS (SELECT *
                     FROM INFORMATION_SCHEMA.TABLES
                     WHERE TABLE_SCHEMA = 'TheSchema'
                     AND  TABLE_NAME = 'TheTable'))
    BEGIN
        --你的业务逻辑
    END
    

    请将TheSchemaTheTable分别替换成你对应的架构名和表名。

    Rector的个人主页

    Rector

    2020-05-09 回答

    • 0

      使用OBJECT_ID()函数来检测指定的表名是否存在,如下:

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

      如果要检测一张临时表是否存在,则可以使用如下的SQL语句:

      IF OBJECT_ID('tempdb..#tableName') IS NOT NULL
      
      Rector的个人主页

      Rector

      2020-05-09 回答

      • 0

        使用sys.Objects目录视图,如下:

        IF EXISTS(SELECT 1 FROM sys.Objects WHERE  Object_id = OBJECT_ID(N'dbo.Customers') AND Type = N'U')
        BEGIN
           PRINT '表存在'
        END
        
        Rector的个人主页

        Rector

        2020-05-09 回答

        • 0

          使用sys.Tables目录视图检测指定的表名是否存在,如下:

          IF EXISTS(SELECT 1 FROM sys.Tables WHERE  Name = N'Customers' AND Type = N'U')
           BEGIN
                PRINT 'Table Exists'
           END
          
          Rector的个人主页

          Rector

          2020-05-09 回答

          • 0

            使用系统表sys.sysobjects来检测指定的表名是否存在,如下:

            IF EXISTS(SELECT name FROM sys.sysobjects WHERE Name = N'Customers' AND xtype = N'U')
              BEGIN
                 PRINT 'Table Exists'
              END
            
            Rector的个人主页

            Rector

            2020-05-09 回答

            我来回答