sql server 中查询表或列是否存在

确定表是否存在

1.  使用系统视图: sys.tables

      select    name     from     sys.tables     where   name = ' tablaName'    and type = 'u'

      type = 'u' 是排除存储过程和视图及系统表等,指的是用户表User_Table。

2.  使用系统视图:sysobjects   
     select   *   from   sysobjects   where   id   =   object_id('UserSubsysCentHistory_null')   and   xtype   =   'u'

     xtype   =   'u' 是排除存储过程和视图及系统表等,指的是用户表User_Table。

 确定列是否存在

1  假设表为aaa,要添加的字段是name字段.   
        select   *   from   syscolumns   where   [name]='name'   and   OBJECTPROPERTY(id,'IsUserTable')=1   and   object_name(id)='aaa')  

 -------------------------------------------------------------------------------------------------------------------------------

注意;
     

  EntityManager em=super.getEntityManager(AppConfig.PERSISTENCE_CENT);
  Object result=em.createNativeQuery(sql).getSingleResult();

   getSingleResult()

 

Throws:
NoResultException - if there is no result : 返回值是 0
NonUniqueResultException - if more than one result :结果多余一个

所以应保证有且仅有一条记录才可以。那么可以改用 List   getResultList(),通过判断它的size()来确定是否有结果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值