(SQL语句)查询对象是不是表名

一、操作环境

  1. 数据库版本:sql server 2012
  2. 测试数据库:Northwind,安装方法请参考这篇文章
    Northwind表结构
    二、语法介绍
OBJECTPROPERTY(id, property)

#id表示当前数据库中对象ID的表达式
#property是一个表达式,提供id指定的对象的返回信息。

其中property可以是以下的值

属性名称对象类型说明返回值属性名称对象类型说明返回值
CnstlsClustKey约束具有聚集索引的 PRIMARY KEY 约束1=True 0=FalseCnstlsColumn约束单个列上的 CHECK、DEFAULT 或 FOREIGN KEY 约束1=True 0=False
ExeclsAfterTrigger触发器AFTER 触发器1=True 0=FalseExeclsDeleteTrigger触发器DELETE触发器1=True 0=False
IsPrimaryKey任何架构范围内的对象PRIMARY KEY 约束1=True 0=False NULL=非函数,或对象ID无效IsTable1=True 0=False

①更多属性值及完整信息请查看官方文档
②除非另外注明,否则出现以下情况时将返回 NULL:
Ⅰ: property 不是有效的属性名称;id 不是有效的对象 ID;
Ⅱ: id 不是指定属性支持的对象类型;
Ⅲ: 调用方无权查看对象的元数据。

由上表可知,可以使用“IsTable”来验证对象是不是表名,这里以“Orders”为例

IF OBJECTPROPERTY (OBJECT_ID(N'Orders'),'ISTABLE') = 1  
   PRINT 'Orders表存在当前数据库'  
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Orders'),'ISTABLE') = 0  
   PRINT 'Orders表不存在当前数据库'  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190128114021172.png)
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Orders'),'ISTABLE') IS NULL  
   PRINT '属性名称无效或无访问权限'

#属性说明
OBJECT_ID():表示系统分配给对应表的唯一ID。
N'Orders':N表示Unicode类型,这样可以支持不同语种的对象名;'Orders'处填写的要查询的对象名。

执行,查看结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值