2010-12-08 73 views
10

在SQL Server中,我可以使用下面的SQL來檢查約束存在,如果它是一個主鍵,觸發器等SQL爲Oracle如果約束存在

SELECT * 
    FROM dbo.sysobjects 
    WHERE id = OBJECT_ID(N'[SCHEMA].[TABLENAME]') 
     AND OBJECTPROPERTY(id, N'IsPrimaryKey') = 1 

什麼是甲骨文相當於因爲我的查詢使用SQL Server特定的表來找到答案。

回答

26
SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'CONSTR_NAME'; 

CONSTRAINT_TYPE會告訴你什麼類型contraint的是

  • 的R - 參照鍵(foreign key)
  • ü - 唯一鍵
  • P - 主鍵
  • Ç - 檢查約束條件

要查明對象是否爲觸發器,可以查詢USER_OBJECTSOBJECT_TYPE會告訴你,如果對象的觸發器,視圖,過程等。

+1

+1這就是我寫的,當你的回答加載。 OP的一個有趣的鏈接是:http://www.dba-oracle.com/t_constraints.htm – 2010-12-08 15:45:49