2009-10-14 10 views
6

Chcę wiedzieć, które pole tabeli są wymagane lub nie są wymagane, więc muszę uzyskać stan "Zezwalaj na zerowanie". Jak to zrobić?SQL: jak sprawdzić, czy pole ma "Allow nulls" zaznaczone lub nie jest zaznaczone przez polecenie SQL

+3

Jaki silnik bazy danych czy używasz? SQL Server, MySQL, Oracle, Access, etc .... –

+0

Dzięki, właśnie znalazłem. wybierz nazwa_kolumny, typ_danych, długość_nazwa_maks. Z kolumny nazwa_informacji.columns gdzie nazwa_tabeli = "mojaTable" –

Odpowiedz

11

Zakładam, że mówisz o SQL Server.

Istnieje tabela, INFORMATION_SCHEMA.COLUMNS, która zawiera metadane dotyczące kolumn w bazie danych.

Można to zrobić:

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME 

IS_NULLABLE daje wartość „Zezwalaj na wartości null” używany w projektanta.

+0

+1: Nie wiedziałem o tym widoku, ty –

1

Jeśli jesteś w MySQL użyć SQL polecenia

DESCRIBE Table; 

Jeżeli tabela jest nazwą tabeli, którą chcesz zbadać

1

Spróbuj (SQL Server)

select sysobjects.name, syscolumns.name, syscolumns.isnullable 
from sysobjects join syscolumns 
    on sysobjects.id = syscolumns.id 
    and sysobjects.xtype = 'U' 
    and sysobjects.name = 'your table name' 
+2

Od czasu SQL Server 2005, powinieneś przestać używać "sysobiektów" i zacząć używać właściwe i bardziej ukierunkowane widoki katalogu w schemacie "system", np "sys.tables", "sys.columns" i tak dalej –

+0

+1: To świetna wskazówka marc_s, ty –

Powiązane problemy