amstyles
Goto Top

SQL Statement Abfrage Eigenschaft NOT NULL

Hallo Foren User,

ich möchte ein SQL Statement erstellen, welches mir wenn Möglich einen Boole Wert zurück liefert, bei dem ich abfragen kann, ob die ausgewählte Spalte die Eigenschaft NOT NULL hat, oder nicht.

Gibt es ein solches SQL Statement überhaupt?
Wenn nicht, gibt es in Visual Studio 2008 C# eine Funktion, die man benutzen kann?
Meine Laufzeit Umgebung ist .Net 3.5

LG,
AMStyles

Content-ID: 178018

Url: https://administrator.de/contentid/178018

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

filippg
filippg 22.12.2011 um 13:56:15 Uhr
Goto Top
Hallo,

unter Transact-SQL (MS SQL) würde ich IS NOT NULL verwenden.

Gruß

Filipp
Ravers
Ravers 22.12.2011 um 14:05:56 Uhr
Goto Top
Hi,

verstehe die Frage nicht ganz. Die Eigenschaften der Spalte ... ??

Ausgeben aller Zeilen dessen Spaltenwert nich null ist =
select * from TABELLE where SPALTE is not null

Aber ich denke du meinst was anderes, oder??

greetz
ravers
AMStyles
AMStyles 22.12.2011 um 15:02:51 Uhr
Goto Top
Hallo Ravers,

danke für deine Antwort.
Ja ich meine etwas anderes.
Wenn man unter SQL Server eine Tabelle mit Spalten anlegt, kann man mittels Checkbox auswählen, ob die Spalte
- Not Null
- Primary Key
- Foregin Key

sein soll.

Nun meine Frage.
Ist es Möglich diese "Einstellung" aus C# oder SQL heraus abzufragen?

LG,
AMStyles
Biber
Biber 22.12.2011 um 15:45:08 Uhr
Goto Top
Moin AMStyles,

mittels SQL kannst du z.B. über die VIEW sys.columns abfragen

- eine bestimmte Spalte einer bestimmten Tabelle-
SELECT is_nullable  
FROM    sys.columns  
WHERE   object_id = object_id('DeineTabelle')            
and name = 'DeineSpalte'   

-bzw für alle Spalten einer Tabelle-
SELECT name, is_nullable  
FROM    sys.columns  
WHERE   object_id = object_id('DeineTabelle')            

Grüße
Biber
AMStyles
AMStyles 22.12.2011 um 16:18:06 Uhr
Goto Top
Hallo Biber,

vielen Dank für deine schnelle Antwort.
Genau so etwas habe ich gesucht face-smile
Gibt es ähnliche Funktionen, um herauszufinden, ob der Primärschlüssel oder der Sekundärschlüssel gesetzt sind?

LG,
AMStyles
Biber
Biber 22.12.2011 um 16:35:48 Uhr
Goto Top
Moin AMStyles,

ja, es gibt für die bei Datenbank üblichen Metadaten-Abfragen auch bei M$ einen ganzen Sack voll "Katalogsichten".

Die drei, die du für eine Query bezüglich Tabellen und deren PK/Indexspalten brauchen könntest sind
  • sys.tables
  • sys.indexes
  • sys.index_columns

Als Einstieg würde ich den Blick auf Felder der sys.index_columns empfehlen.

Hint: Du kannst unmöglich der allererste in dieser Galaxie sein, der gerne derartige Abfragen abschicken möchte.
Möglicherweise haben andere schon ihre Lieblingsstatements im Netz öffentlich gemacht.

Grüße
Biber