Como verificar se existe não restrição NULL

votos
2

Eu estou modificando uma tabela SQL através de código C # e eu preciso para largar uma restrição NOT NULL se ele existir. Como posso verificar para ver se ele existe em primeiro lugar?

Publicado 09/12/2008 em 16:31
fonte usuário
Em outras línguas...                            


5 respostas

votos
14

select is_nullable 
from   sys.columns
where  object_id = OBJECT_ID('tablename')  
and    name = 'columnname';
Respondeu 09/12/2008 em 16:37
fonte usuário

votos
1

executar essa instrução 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'

e, em seguida, executar a instrução ALTER que remove a restrição de "não nulo"

Respondeu 09/12/2008 em 16:40
fonte usuário

votos
1

Bem, você pode verificar syscolumns.isnullablebandeira? Ou, mais recentemente:

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

Onde @tableId é OBJECT_ID ( 'TableName')

Respondeu 09/12/2008 em 16:37
fonte usuário

votos
0

você pode com o uso de COLUMNPROPERTY :

COLUMNPROPERTY SELECIONAR (OBJECT_ID ( 'SCHEMANAME.TABLENAME'), 'ColumnName', 'AllowsNull')

Respondeu 09/12/2008 em 16:40
fonte usuário

votos
0

Eu não tenho certeza sobre as suas regras de negócio, para que eu pudesse estar errado, mas o que você está propondo soa como uma má idéia.

Se a restrição NOT NULL não deveria existir, em seguida, removê-lo da DB. Se ele deve existir, programa em torno dele.

Se você realmente precisa implementar DDL para alterar tabelas, eu ia escrever um procedimento armazenado para fazer e chamar o procedimento armazenado a partir de C #.

Respondeu 09/12/2008 em 16:35
fonte usuário

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