IS_NULLABLE

29/02/2008 - 20:30 von Mihai Grosu | Report spam
Hallo zusammen

Hab mal ein Problem:
Ich hole mit aus eine Access-DB das Schema (geht um ein Upsize
Access-->SQL)..

DataTable Felder = Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,
new object[] { null, null, "Tabelle1"});
Über Felder["IS_NULLABLE"] prüfe ich, ob's halt nullable ist.

Jetzt das Problem: Wenn ich in Access in den Feldeingeschaften schaue, steht
drin, dass es nullable ist, allerding geht auf dem SQL-Server kein Index auf
einem Feld, das nullable ist.
Wie kann ich rausfinden, ob dieses Feld aus Sicht des SQL-Servers nullable
ist oder nicht. Ich würde "instinktiv" in die Indexes schauen, ob das Feld
irgendwas mit einem Index zu tun hat...
Gibt es more magic?

Gruß
 

Lesen sie die antworten

#1 Elmar Boye
29/02/2008 - 21:19 | Warnen spam
Hallo Mihai,

Mihai Grosu schrieb:
Hab mal ein Problem:
Ich hole mit aus eine Access-DB das Schema (geht um ein Upsize
Access-->SQL)..

DataTable Felder =
Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] {
null, null, "Tabelle1"});
Über Felder["IS_NULLABLE"] prüfe ich, ob's halt nullable ist.

Jetzt das Problem: Wenn ich in Access in den Feldeingeschaften schaue,
steht drin, dass es nullable ist, allerding geht auf dem SQL-Server kein
Index auf einem Feld, das nullable ist.
Wie kann ich rausfinden, ob dieses Feld aus Sicht des SQL-Servers
nullable ist oder nicht. Ich würde "instinktiv" in die Indexes schauen,
ob das Feld irgendwas mit einem Index zu tun hat...



Grundsàtzlich ist nur für Primàrschlüssel (PRIMARY KEY) NOT NULL Pflicht.
Ansonsten sind für UNIQUE Einschrànkungen und Indizes Nullen durchaus
erlaubt, allerdings nur ein Nullwert für die Spalte (da NULL im Index
als gleich bewertet wird), bei normalen Indizes ohne Einschrànkung.

Somit muss Dich vornehmlich der Primàrschlüssel und ggf. zusàtzliche
eindeutige Indizes interessieren.

Im Prinzip gilt bei Access für Primàrschlüssel ebenfalls NOT NULL -
nur erfordert der Designer das leider nicht und viele legen die
Tabellen, somit ohne Eindeutigkeit an. (Was man ggf. zuerst bei
der Access-Tabelle àndern sollte - wenn es den Aufwand lohnt).

Für Unique Indizes/Einschrànkungen sollte das eigentlich auch sein,
aber manch einer nutzt das als Feature, was die Tage in mpd.sqlserver
behandelt wurde, siehe
http://groups.google.de/group/micro...414fe33288

(der SSMA wàre im übrigen eine Alternative zur Eigenarbeit...)

Gruß
Elmar

Ähnliche fragen