Wie kann man überprüfen, ob NOT NULL vorhanden

stimmen
2

Ich Modifizieren einer SQL-Tabelle über C # -Code und ich brauche eine NOT NULL Bedingung fallen zu lassen, wenn es vorhanden ist. Wie kann ich überprüfen, um zu sehen, ob es zuerst existiert?

Veröffentlicht am 09/12/2008 um 16:31
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
14

select is_nullable 
from   sys.columns
where  object_id = OBJECT_ID('tablename')  
and    name = 'columnname';
Beantwortet am 09/12/2008 um 16:37
quelle vom benutzer

stimmen
1

Diese SQL-Anweisung ausführen:

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'

und führen Sie dann die ALTER-Anweisung, die „nicht null“ Constraint entfernt

Beantwortet am 09/12/2008 um 16:40
quelle vom benutzer

stimmen
1

Nun, Sie könnten überprüfen syscolumns.isnullableFlagge? Oder in jüngerer Zeit:

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

Wo @tableId ist OBJECT_ID ( 'Tablename')

Beantwortet am 09/12/2008 um 16:37
quelle vom benutzer

stimmen
0

Sie können mit dem Einsatz von COLUMN :

SELECT COLUMN (OBJECT_ID ( 'schemaName.tabellenName '), Spaltenname', 'AllowsNull')

Beantwortet am 09/12/2008 um 16:40
quelle vom benutzer

stimmen
0

Ich bin über Ihre Geschäftsregeln nicht sicher, so dass ich könnte falsch sein, aber was Sie klingt wie eine schlechte Idee vorschlagen.

Wenn die NOT NULL nicht existieren sollte, entfernen Sie sie dann von der DB. Wenn sollte es existieren, Programm um ihn herum.

Wenn Sie tatsächlich DDL brauchen zu implementieren Tabellen zu ändern, würde ich eine gespeicherte Prozedur zu tun schreiben und die gespeicherte Prozedur von C # aufrufen.

Beantwortet am 09/12/2008 um 16:35
quelle vom benutzer

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