I 2 Datenbanken, die ich freue mich auf, wenn ich diese Abfrage auf beide ausführen, gibt man einen Wert und wirft man einen KonvertierungsfehlerFehler bei der Konvertierung, wenn der varchar Wert in einigen Fällen mit identischen Datenumwandlungs
code_desc ist eine Varchar-Spalte und hat einige Varchars darin
SELECT *
FROM t_ccs_admin_code
WHERE code_grp = '50042' AND code_desc = 015105
ich einen Vergleich auf dem Tisch lief habe t_ccs_admin_code
und alle Daten, erscheint über den Datenbanken übereinstimmen. Ich weiß, dass ich das beheben kann, aber an diesem Punkt versuche ich wirklich nur herauszufinden, warum ich das in einer Umgebung und nicht in der anderen bekomme.
laufen Wenn 'code_desc' ein varchar ist, warum Sie den Wert in einen int verglichen werden? –
Ich verstehe, dass es einen besseren Weg gibt, dies zu tun, und ich löse den Code, der das Problem verursacht. Ich versuche nur zu verstehen, warum dies sogar in einer Umgebung funktioniert, wenn die Daten in beiden identisch sind. – Corey
@corey: Sie können versuchen, 'SELECT * FROM t_css_admin_code WHERE code_desc ist nicht NULL und TRY_CONVERT (INT, code_desc) IS NULL 'auf beiden Setups und sehen, ob es nicht konvertierbare Einträge gibt. Auch eines Ihrer Setups kann, sagen wir, einen Index für 'code_grp' haben. Wenn dieser Index verwendet wird und zufällig nur für diese Gruppe keine ungültigen Einträge vorhanden sind, funktioniert die Abfrage möglicherweise auf einem Server und nicht auf einem anderen. – Quassnoi