确定表是否存在
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()来确定是否有结果。