Announcement

Collapse
No announcement yet.

Problem mit NOT NULL-Feldern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit NOT NULL-Feldern

    Hallo,

    ich habe auf dem SQL-Server 2000 ein merkwürdiges Phänomen:

    In manchen Datenbanktabellen gibt es NOT NULL-Felder bei denen ich aber wenn ich mich mit dem Enterprise-Manager verbinde NULL-Werte eintragen kann. Verbinde ich mich allerdings über eine Access-Projekt-Datei wird die NOT NULL-Bedingung korrekt abgefangen!

    Habe das Phänomen auf 3 verschiedenen Rechnern und 3 verschiedenen SQL-Servern entdeckt. Auch von der DB ist es scheinbar nicht abhängig.

    Kennt jemand von Euch ähnliche Probleme?

    Wie immer danke für jede Hilfe

    Reiko

  • #2
    Hallo,

    was passiert, wenn im Query Analyzer über INSERT ein Datensatz eingefügt wird, bei dem in der VALUES-Auflistung explizit NULL übergeben wird?
    <pre>
    <b>USE</b> tempdb
    <b>GO</b>
    <br>
    <b>CREATE</b> <b>TABLE</b> NullTest
    (
    recid <b>INTEGER</b> <b>NOT</b> <b>NULL</b> <b>IDENTITY</b> <b>PRIMARY</b> <b>KEY</b>,
    wert <b>VARCHAR</b>(9) <b>NOT</b> <b>NULL</b>
    )
    <b>GO</b>
    <br>
    <b>INSERT</b> <b>INTO</b> NullTest (wert) <b>VALUES</b> (<font color="#9933CC">'OK'</font>)
    <b>INSERT</b> <b>INTO</b> NullTest (wert) <b>VALUES</b> (<b>NULL</b>)
    <b>INSERT</b> <b>INTO</b> NullTest (wert) <b>VALUES</b> (<font color="#9933CC">''</font>)
    <b>GO</b>
    </pre>
    &gt;..mit dem Enterprise-Manager verbinde NULL-Werte eintragen kann..

    Ich gehe davon aus, dass hier ein Leerstring eingetragen wird, aber nicht der NULL-Zustand.

    &gt;..Access-Projekt-Datei wird die NOT NULL-Bedingung korrekt abgefangen.

    Beim Zugriff über ADO oder ODBC kann man über die Verbindungsoptionen festlegen, ob eine leere Zeichenkette automatisch durch den NULL-Zustand ersetzt werden soll, bevor die Daten an den MS SQL Server übergeben werden

    Comment


    • #3
      Moin Andreas,

      Du hast .. wie immer .. Recht ;-)

      Beim Query Manager wird der Null-Wert abgefangen. Frägt man den mit dem Enterprise-Manager eingefügten Wert ab erhält man ebenfalls '' statt Null.

      Hätte ich eigentlich auch selbst rausfinden können? .. schä

      Comment


      • #4
        Zitat:<Beim Zugriff über ADO oder ODBC kann man über die Verbindungsoptionen festlegen, ob eine leere Zeichenkette automatisch durch den NULL-Zustand ersetzt werden soll, bevor die Daten an den MS SQL Server übergeben werden.>

        Wie macht man das ???

        Danke im voraus

        Dir

        Comment

        Working...
        X