Jak sprawdzić, czy istnieje ograniczenie NOT NULL

głosy
2

Ja modyfikowania tabeli SQL poprzez kod C # i muszę zrzucić NOT NULL jeśli istnieje. Jak mogę sprawdzić, czy istnieje w pierwszej kolejności?

Utwórz 09/12/2008 o 16:31
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
14

select is_nullable 
from   sys.columns
where  object_id = OBJECT_ID('tablename')  
and    name = 'columnname';
Odpowiedział 09/12/2008 o 16:37
źródło użytkownik

głosy
1

wykonać tę instrukcję 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'

a następnie wykonać instrukcję ALTER który usuwa „NOT NULL” ograniczenia

Odpowiedział 09/12/2008 o 16:40
źródło użytkownik

głosy
1

Cóż, można sprawdzić syscolumns.isnullableflagę? Lub więcej ostatnio:

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

Gdzie @tableId jest OBJECT_ID ( 'TableName')

Odpowiedział 09/12/2008 o 16:37
źródło użytkownik

głosy
0

można z wykorzystaniem COLUMNPROPERTY :

WYBIERZ COLUMNPROPERTY (OBJECT_ID ( 'SchemaName.TableName'), 'NazwaKolumny', 'AllowsNull')

Odpowiedział 09/12/2008 o 16:40
źródło użytkownik

głosy
0

Nie jestem pewien, o swoich reguł biznesowych, więc mogę się mylić, ale to, co proponują brzmi jak zły pomysł.

Jeśli NOT NULL ograniczenia nie powinny istnieć, a następnie usunąć je z DB. Czy powinien istnieć, programu wokół niego.

Jeśli rzeczywiście trzeba wdrożyć DDL zmienić tabele, chciałbym napisać procedurę przechowywaną do zrobienia i wywołać procedurę przechowywaną z C #.

Odpowiedział 09/12/2008 o 16:35
źródło użytkownik

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