確定表是否存在
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()來確定是否有結果。