Jump to content

Problem in einer SQL Express Datenbank


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich muss gleich sagen, ich habe nicht viel Plan von Datenbanken.

 

Mein Problem besteht darin, dass ich eine bestehende Datenbank habe, unter anderem mit dem Feld "IMEI".

 

Meiner Meinung nach müsste das Feld so definiert sein, dass keiner der Einträge dem anderen gleichen darf, gibt ja keine identischen IMEI-Nummern.

 

Aber wenn ich nun das Feld komplett leer lasse, meckert mich die Software an, von wegen: IMEI wurde schon vergeben bei "".

 

Wie kann ich das Feld definieren, dass keine Einträge gleich sein können, aber das Feld leer bleiben kann??

 

Bitte um Hilfe, danke!

Link zu diesem Kommentar

das heisst, ich müsste mich absolut auf meine Einträge verlassen und das Feld so ändern, dass es NULL oder leer zulässt?

 

Ja.

 

Ich mache alle Einträge selbst, von daher müsste ich eben nur aufpassen, keine IMEI doppelt zu vergeben, sehe ich das richtig?

 

 

Ist natürlich gefahrenbehaftet. Warum kannst du keinen Autowert verwenden?

Link zu diesem Kommentar

So ungefähr, entweder Du setzt auf die Spalte beispielsweise einen Primary Key, der eindeutig ist und nicht NULL enthalten darf (damit stellst Du dann sicher, dass in dieser Spalte ein eindeutiger Wert verwendet werden muss) oder Du verwendest zB einen Unique Key, der darf dann NULL enthalten, muss aber dennoch eindeutig sein.

 

Unique key - Wikipedia, the free encyclopedia

 

Setzt Du weder einen Primary noch einen Unique Key, so kann jeder Wert (je nach Spaltendefinition) gültig sein und doppelt vorkommen, das müsstest Du seitens der eintragenden Anwendung dann zB mit einer Duplikatprüfung per vorangestelltem Select Statement steuern.

 

Grüsse

 

Gulp

Link zu diesem Kommentar
Aber wenn ich nun das Feld komplett leer lasse, meckert mich die Software an, von wegen: IMEI wurde schon vergeben bei "".

Was mich grade noch stutzig macht: Welche Software meckert? Die Datenbank oder eine Applikation, welche auf der Datenbank aufsetzt?

 

entweder Du setzt auf die Spalte beispielsweise einen Primary Key

Da stellen sich den Datenbankern die Nackenhaare auf ;) Man sollte nie ein Datenfeld zu einem PK machen. Ich verwende für soetwas immer ein varchar(38)-Feld, welche über die Funktion NewID() befüllt wird. Dabei erhält mal einen 38-stelligen Wert, den das DBMS zufällig ausrechnet. Mir ist dabei noch keine Dopplung untergekommen. Ein Beispiel (grade frisch erzeugt):

D727AC2E-F0E7-482F-9667-9410B0AC75DF[/Code]

Link zu diesem Kommentar

Und genau deshalb ist NOT NULL genau die falsche Definition für dieses Feld. DU hast dich aber immer noch nicht zu meiner Frage geäussert:

Was mich grade noch stutzig macht: Welche Software meckert? Die Datenbank oder eine Applikation, welche auf der Datenbank aufsetzt?

 

Davon hängt auch ein wenig ab, ob wir da seitens der Datenbank überhaupt noch was machen können ;)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...