feststellen ob Feld benötigt MSSQL/ASP

MrBarcode

Erfahrenes Mitglied
Ich steh im Moment total an.
Für ein dynamisches Eingabeformular für eine MSSQL Datenbank, das ich gerade unter ASP schreibe, möchte ich feststellen, ob ein Feld in einer Tabelle required ist. (im Enterprise Manager heißt es "NULL zulassen")
Ich habe jedoch keine Ahnung, wie ich die Feldeigenschaften auslesen kann. Kann mir irgendwer helfen?
 
Hab jetzt selbst schon mal die Lösung gefunden ;)

In der Tabelle : datenbankname.dbo.syscolumns gibt es die Spalte 'isnullable'. Mit der kann man das ganze dann auslesen.
Allerdings braucht man, wenn man die einzelnen Felder der gesuchten Tabelle haben möchte noch die id der Tabelle.
Die kriegt man unter datenbankname.dbo.sysobjects.

Hier etwas code für die, dies interessiert :)

mit

Code:
select isnullable from datenbankname.dbo.syscolumns

kriegt man mal für alle Felder aller Tabellen heraus, ob sie einen Wert enthalten müssen

Da ich das aber bloß für eine bestimmte Tabelle wissen möchte muss ich die Suche mit einem where einschränken. In dbo.syscolumns gibt es eine Spalte namens id, die angibt, in welcher Tabelle die einzelnen Spalten liegen. Und welche id eine tabelle hat steht in der dbo.sysobjects.
Und so kriegt man die TabellenID:

Code:
SELECT ID FROM datenbankname.dbo.sysobjects 
WHERE xtype='u' AND name='tabellenname'

Und setzt man das zusammen kriegt man eine Liste von Nullen und Einsen, die angeben, ob ein Feld einen Wert enthalten muss.

Code:
SELECT name, isnullable FROM datenbankname.dbo.syscolumns 
WHERE id=(SELECT ID FROM datenbankname.dbo.sysobjects 
          WHERE xtype='u' AND name='tabellenname')

0 heißt dabei isnullable=false
1 isnullable=true

Für alle, die das auch mal brauchen können ;)

PS: Sorry wegen Doppelposting :(
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück