2010-02-08 3 views
1

Je veux que mon programme C# sache si la contrainte notNULL est définie pour une colonne de base de données Firebird spécifique. Peut-il être vérifié dynamiquement, peut-être en interrogeant les métadonnées? Je trouve la documentation Firebird très clairsemée.Firebird SQL: Vérifiez si la contrainte notNULL est définie pour une colonne spécifique?

De même, comment Firebird fournit-il des informations sur les colonnes qui existent dans une table spécifique?

Répondre

1

Pour le faire manuellement, utilisez l'instruction suivante:

select rdb$null_flag 
from rdb$relation_fields 
where rdb$relation_name = 'MyTable' and rdb$field_name = 'MyField' 

Sinon, vous pouvez essayer d'explorer FbDataReader.GetSchemaTable().

1

Vous devez demander des métadonnées Firebird à propos des contraintes - toutes les informations à ce sujet sont stockées dans les tables système. Par exemple, comment faire ce regard sur cette page: http://www.alberton.info/firebird_sql_meta_info.html (voir la section « Liste CONTRAINTES »).

+0

Les informations contenues dans le lien est bon, mais votre réponse serait beaucoup mieux si vous avez copié les parties sur 'contraintes de null' et obtenir des colonnes de table en elle. Ce serait dans l'esprit de SO, qui vise à être plus qu'une collection de liens (peut-être périmés). – mghie

Questions connexes