Zum Inhalt springen

[MSSQL] Wieo wird varchar in int umgewandelt?


Winterkind

Empfohlene Beiträge

Hallo zusammen,

ich beschäftige mich gerade mit Datenbanken. Ich habe nun mit den Befehlen "create database datenbankname" und "create table tabellenname" eine Datenbank mit einigen Tabellen angelegt.
Danach habe ich nun versucht die Tabellen mit dem Befehl "insert into tabellenname values(...);" einzufügen.

Beispiel:

1. Ich habe eine Tabelle "Kunden" mit den Attributen "ID", "Name", "Vorname" und "Strasse". ID ist vom Datentyp Integer und die anderen drei Attribiute sind vom Datentyp Varchar.

Befehl zum Einfügen von Daten:

INSERT INTO Kunden
VALUES(01, 'Mustermann', 'Max', 'Musterstrasse 1');

2. Ich habe eine Tabelle "Auto" mit den Attributen "ID", "Kunde", "Name", "Kennzeichen". ID ist wieder vom Typ Integer, Kunde ebenso (referenziert auf die ID in der Kundentabelle als Fremdschlüssel) und Name sowie Kennzeichen sind wieder vom Typ Varchar.

Befehl zum Einfügen von Daten:

INSERT INTO Auto
VALUES(01, 01, 'VW Golf', 'XY Z 99');

Beide Tabellen befinden sich logischerweise in derselben Datenbank.

Nun tritt folgendes Problem auf:

Ich führe die Abfrage zum Einfügen der Daten in die Tabellen ein (mit mehreren Datensätzen, nicht nur einem). Die Tabelle Kunden wird wie angegeben gefüllt und ich kann sie mir danach problem anschauen und weitere Abfragen auf ihr ausführen.
Bei der Tabelle Auto bekomme ich jedoch folgende Fehlermeldung und sie wird nicht gefüllt:

"Conversion failed when converting the varchar value 'XY-Z99' to data type int."

Wieso wird hier nun versucht varchar in int umzuwandeln? Ich gebe nichts dergleichen an? Ich dachte erst, es liegt vielleicht daran, dass Buchstaben und Zahlen gemixt sind, aber das ist ja bei dem Attribut "Strasse" in der Tabelle "Kunden" ebenfalls der Fall und da gibt es keine Probleme.

Muss ich für solche Fälle vielleicht einen anderen Datentyp wählen oder irgendwas zusätzlich konvertieren?

Das Attribut kommt nur in dieser Tabelle vor und wird sonst nirgendwo referenziert oder sonstiges.

Ich hoffe, jemand kann mir weiterhelfen...:)

Danke im Voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die schnelle Antwort!

Ja, Kennzeichen wurde als varchar definiert. Das habe ich als erstes nachgeschaut, aber ich kann mal keinen Fehler oder ein fehlendes Komma oder sonst was erkennen..

Hier ist meine Definition der Tabelle:

create table Auto

(

ID INTEGER NOT NULL,

Kunde INTEGER,

Name VARCHAR(50),

Kennzeichen VARCHAR(50),

PRIMARY KEY(ID),

FOREIGN KEY(Kunde) REFERENCES Kunde(ID)

);

 

Habe auch die Datenbank nochmal ganz neu erstellt und nur die Tabelle Auto eingefügt ohne Fremdschlüssel, weil ich dachte, ich habe vielleicht vorher einen Fehler gemacht, aber dann passiert es auch..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, ich habe jetzt alles noch einmal nach und nach per Hand abgetippt und jetzt funktioniert es.

Ich habe keine Ahnung, wo der Fehler lag, denn wenn ich ein Diff von beiden Versionen mache, ist es genau derselbe Text. Vielleicht ist bei dem ganzen Copy&Paste irgendwann etwas reingerutscht, dass da nichts zu suchen hatte.

Dennoch vielen Dank für die Hilfe!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

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

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...