我想讓我的C#程序知道是否爲特定的Firebird數據庫列設置了NOTNULL約束。可以通過查詢元數據來動態檢查嗎?我發現Firebird文檔非常稀少。Firebird SQL:檢查是否爲特定列設置了NOT NULL約束?
另外,Firebird如何提供信息在特定表中存在哪些列?
我想讓我的C#程序知道是否爲特定的Firebird數據庫列設置了NOTNULL約束。可以通過查詢元數據來動態檢查嗎?我發現Firebird文檔非常稀少。Firebird SQL:檢查是否爲特定列設置了NOT NULL約束?
另外,Firebird如何提供信息在特定表中存在哪些列?
做手工,使用下面的語句:
select rdb$null_flag
from rdb$relation_fields
where rdb$relation_name = 'MyTable' and rdb$field_name = 'MyField'
或者,你可以嘗試探索FbDataReader.GetSchemaTable()
。
您需要請求有關約束的Firebird元數據 - 有關它的所有信息都存儲在系統表中。例如,如何做到這一點看看這個頁面:http://www.alberton.info/firebird_sql_meta_info.html(見「列表CONSTRAINTs」部分)。
鏈接中的信息很好,但是如果您複製了有關'NULL'約束的零件並將表列放入其中,則您的答案會更好。這將符合SO的精神,其目的不僅僅是收集(可能過時)的鏈接。 – mghie 2010-02-09 05:09:45