Ich kann nicht scheinen, einen Datetime-Wert in eine Tabelle mithilfe von Ausgabeparametern einzufügen.
Ich bekomme den folgenden Fehler.Datum Fehler beim Einfügen von Ausgabewert aus TSQL Merge-Befehl in eine Tabelle
Konvertierung fehlgeschlagen, wenn Datum und/oder Uhrzeit aus Zeichenkette konvertiert werden.
Meine Merge-Anweisung ist unten. Wenn ich das SQL ohne die INTO-Klausel ausführe, erhalte ich keine Fehler. Die Ausgabe, wie auf dem Bildschirm gezeigt, ist unten enthalten.
Ich habe jede Variante von CAST und Convert versucht, die ich sehen kann, und ich bekomme immer noch den gleichen Fehler. Ich kann Datensätze mit regulären Einfügebefehlen mit dem Datumswert, der von Getdate() bereitgestellt wird, erfolgreich in die Tabelle einfügen oder zitierten Text in dem Format der Daten verwenden, die unten in der ASCII-Tabelle angezeigt werden.
Die Spalten new_createdate und old_createdate sind in meiner Changelog-Tabelle aktiv.
Ich bin ratlos, warum die Daten von eingefügten und gelöschten scheinen nicht in eine Tabelle ohne diesen Fehler gehen wollen.
MERGE jobtbl PJP
USING myjobtbl CPI
ON PJP.jobnum = CPI.jobnum
WHEN MATCHED THEN
UPDATE
SET PJP.customer = CPI.customer,
PJP.createdate = CPI.createdate,
WHEN NOT MATCHED BY TARGET THEN
INSERT
(jobnum,
customer,
createdate)
VALUES
(cpi.jobnum,
cpi.customer,
cpi.createdate)
OUTPUT
$ACTION action,
inserted.jobnum jobnumcol,
inserted.createdate new_createdate,
deleted.createdate old_createdate,
inserted.customer new_customer,
deleted.customer old_customer,
INTO [dbo].[changeLog];
+-------+------+--------------------+--------------------+---------+--------+
|action |jobnum| new_createdate | old_createdate |new_cust |old_cust|
+-------+-----+---------------------+--------------------+---------+--------+
|UPDATE |169853| 2016-06-17 13:34:00| 2016-06-17 13:34:00| CHIENE |CHIENE |
|UPDATE |169743| 2016-05-20 14:07:00| 2016-05-20 14:07:00| DOZJOS |DOZJOS |
+-------+------+--------------------+--------------------+---------+--------+
Entspricht die Struktur Ihrer 'changeLog'-Tabelle der Spaltenreihenfolge in' OUTPUT'? Können Sie die Tabelle DDL posten? – iamdave
Ich glaube schon. Ist die Spaltenreihenfolge wichtig, auch wenn ich die Spalten in der output-Klausel explizit benenne? Muss jede Spalte in der Changelog-Tabelle in die eingefügten und gelöschten Anweisungen eingeschlossen werden? – Gork
Ich glaube schon, da Sie ihnen nur einen Alias geben. Können Sie das Script 'CREATE TABLE' Ihrer ChangeLog-Tabelle posten? – iamdave