Ich muss momentan eine Access (97)-Datenbank auf den SQL Server 2005 konvertieren. Dabei habe ich ein Problem mit den Werten. Auf manchen Spalten in der Access-Datenbank ist ein Unique-Index gesetzt. Access hat aber die Eigenart, dass solche Indizes mehrere Zeilen mit NULL-Werten zulassen. Das wurde natürlich ausgenutzt :-(
Im SQL-Server ist ein Unique Index aber wirklich unique, mehrere Zeilen mit NULL-Werten sind also nicht zugelassen. Ich könnte jetzt natürlich den Index auf non-unique setzen. Was aber dann nicht merh verhindert, dass unzulässige Daten in die Datenbank kommen. Denn die Geschäftslogik sagt hier, dass der Wert in den betreffenden Spalten zwar eindeutig sein muss, ausser wenn NULL eingefügt wird.
Die einzige Lösung, die ich mir momentan vorstellen kann, wäre ein non-unique Index (sofern der überhaupt notwendig ist), und ein CHECK CONSTRAINT. Die Funktion für diesen Constraint müsste ich wohl selbst schreiben. Nur: wie mache ich das?
Gruß,
Martin
Im SQL-Server ist ein Unique Index aber wirklich unique, mehrere Zeilen mit NULL-Werten sind also nicht zugelassen. Ich könnte jetzt natürlich den Index auf non-unique setzen. Was aber dann nicht merh verhindert, dass unzulässige Daten in die Datenbank kommen. Denn die Geschäftslogik sagt hier, dass der Wert in den betreffenden Spalten zwar eindeutig sein muss, ausser wenn NULL eingefügt wird.
Die einzige Lösung, die ich mir momentan vorstellen kann, wäre ein non-unique Index (sofern der überhaupt notwendig ist), und ein CHECK CONSTRAINT. Die Funktion für diesen Constraint müsste ich wohl selbst schreiben. Nur: wie mache ich das?
Gruß,
Martin
Comment