Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Datenbanken » [MSSQL] Warum wird varchar in int umgewandelt? » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 8 Beiträge
Karlito

Freut mich, dass wir helfen konnten Augenzwinkern

Gruß,

Karlito
Gast

Okay, ich habe jetzt noch einmal alles per Hand abgetippt und es geht jetzt.
Keine Ahnung wo der Fehler lag, habe einen Diff gemacht und es ist genau derselbe Text wie vorher. Vielleicht ist bei Copy&Paste irgendwas reingerutscht, was da nichts zu suchen hatte.

Trotzdem danke für die Hilfe!
Gast

Genau so wie oben beschrieben:

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

Nur mit mehreren Werten danach noch, aber es bricht ja dann schon in der ersten Zeile ab.
Karlito

Wie sieht dein INSERT-Statement aus?

Gruß,

Karlito
Gast

Danke für eure Antworten!
Ich benutze kein Select zum Befüllen sondern nur INSERT INTO wie oben als Beispiel aufgezeigt...
Und der Datentyp ist ziemlich sicher auch varchar...

Hier die 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 nun auch mal die Datenbank komplett neu angelegt und nur die Tabelle ohne Fremdschlüssel eingefügt, aber auch da taucht der Fehler auf..
Karlito

Hallo,

der Fehler tritt wahrscheinlich auf, weil der Datentyp der Zielspalte nicht mit dem Datentyp der Quellspalte übereinstimmt. D.h. Du befüllst die Tabelle Auto mit einem SELECT-Statement und irgendwo stimmt die Reihenfolge der Felder nicht oder Du hast aus versehen bei Auto bei anlegen der Tabelle den falschen Datentyp angelegt (sieht aus als wäre es das Kennzeichen?).

Gruß,

Karlito
as_string

Die Spalte wird halt doch nicht vom Typ VARCHAR sein. Sonst würde er nicht probieren das zu wandeln.
Überprüfe die Definition der vierten Spalten noch einmal ganz im Detail!

Außerdem: Wenn Du Zahlen angibst, kannst Du Dir führende Nullen sparen.

Gruß
Marco
Gast [MSSQL] Warum wird varchar in int umgewandelt?

Hallo zusammen,

ich beschäftige mich gerade etwas 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... smile

Danke im Voraus!