我有一个表说列是ID,REFERENCE_ID.ID是Pkey,并且设置了自动增量。插入后,下面的触发器用于更新REFERENCE_ID,它基本上附加了插入的ID和日期。
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
当通过sql designer手动插入记录时,这很正常。但是当通过java插入时,表示找不到表错误的pkey。
PS:这是最近从2010年迁移到2012年的sql,它在2010年工作正常,即使是通过java插入。可能是错误的。
提前致谢。
答案 0 :(得分:0)
我认为你应该试试这个,
ALTER TRIGGER [dbo]。[ReferenceIDTrigger]
ON [dbo]。[TABLE1]
FOR INSERT
AS
声明@id int
从已插入
中选择@id = IdBEGIN
更新t1 设置REFERENCE_ID = CONVERT(varchar,DATEPART(MONTH,GETDATE()))+ SUBSTRING(CONVERT(varchar,DATEPART(YEAR,GETDATE())),3,4)+ CAST(i.ID AS VARCHAR(50))< / p>
mysite.com
END;