Cómo verificar si existe una restricción NOT NULL

votos
2

Estoy modificando una tabla SQL a través del código C # y necesito eliminar una restricción NOT NULL si existe. ¿Cómo puedo verificar para ver si existe primero?

Publicado el 09/12/2008 a las 16:31
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
14

select is_nullable 
from   sys.columns
where  object_id = OBJECT_ID('tablename')  
and    name = 'columnname';
Respondida el 09/12/2008 a las 16:37
fuente por usuario

votos
1

ejecutar esta instrucción SQL:

select * from information_schema.columns c
inner join information_schema.tables t on c.table_catalog = t.table_catalog and t.table_schema = c.table_schema and t.table_name = c.table_name
where c.table_name = 'Categories' and c.Is_nullable = 'NO'

y luego ejecuta la instrucción ALTER que elimina la restricción "no nulo"

Respondida el 09/12/2008 a las 16:40
fuente por usuario

votos
1

Bueno, puedes verificar la syscolumns.isnullablebandera? O más recientemente:

COLUMNPROPERTY(@tableId, 'ColumnName', 'AllowsNull')

Donde @tableId es OBJECT_ID ('TableName')

Respondida el 09/12/2008 a las 16:37
fuente por usuario

votos
0

puedes con el uso de COLUMNPROPERTY :

SELECCIONE COLUMNPROPERTY (OBJECT_ID ('schemaName.TableName'), 'ColumnName', 'AllowsNull')

Respondida el 09/12/2008 a las 16:40
fuente por usuario

votos
0

No estoy seguro acerca de las reglas de su negocio, así que podría estar equivocado, pero lo que está proponiendo parece una mala idea.

Si la restricción NOT NULL no debería existir, elimínela de la base de datos. Si debería existir, programe a su alrededor.

Si realmente necesita implementar DDL para cambiar las tablas, escribiría un procedimiento almacenado para hacer y llamaría al procedimiento almacenado desde C #.

Respondida el 09/12/2008 a las 16:35
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more