ich eine Tabelle sagen Spalten ID und REFERENCE_ID.ID ist Pkey und autoincrement auf that.After Einsatz gesetzt, unter Trigger verwendet wird, um die REFERENCE_ID zu aktualisieren, die im Grunde der anfügt eingegebene ID zusammen mit dem Datum.Nach Insert-Trigger funktioniert nicht in MS SQL 2014
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[ReferenceIDTrigger]
ON [dbo].[TABLE1] AFTER INSERT
AS
BEGIN
update TABLE1 set REFERENCE_ID = CONVERT([varchar](2) , DATEPART(MONTH,GETDATE()))+ SUBSTRING(CONVERT([varchar](4) , DATEPART(YEAR,GETDATE())),3,4)+ CAST(ID AS VARCHAR(50)) WHERE ID=(SELECT MAX(ID) FROM TABLE1)
END
Dies funktioniert gut, wenn manuell eine Aufzeichnung über SQL designer.However einfügen, wenn Einsatz durch java sagt es pTaste nicht für die Tabelle Fehler gefunden wird.
PS: Die kürzlich 2010-2012 SQL migriert wird und es funktioniert im Jahr 2010 auch in Ordnung, wenn Einsatz durch java.What falsch sein könnte.
Vielen Dank im Voraus.
Können Sie den relevanten Java-Code einschließen, den Sie verwenden, um das 'INSERT' zu erstellen? –
Ich stimme @TimBiegeleisen, wenn es im Designer funktioniert, müssen wir sehen, was der eigentliche Aufruf über JAVA ist, um zu debuggen. Ich/wir schlagen ein Datenproblem vor. – SQLMason
Ich weiß auch nicht, ob Sie hier eine 'max (id)' machen wollen, vielleicht möchten Sie sich mit 'ID' [Of Interest] (https: //social.msdn) an die' INSERTED' Tabelle anschließen. microsoft.com/Forums/sqlserver/en-US/d246ecea-8d80-47f4-a955-472eae9ac36b/trigger-get-values-from-updated?forum=transactsql) – SQLMason