Hi,
at the end of a very fast-pacing year, I end up using JOOQ with SQLServer
for a customer project. Of course, I bought a license in order to enable
Lukas to buy gifts for his beloved ones :-)
But first of all, I've to thank Lukas for those awesome piece of software:
it has made my day-to-day work -and because I'm a freelancer, my whole
life- so much easier than before. I remember with horror back to the days
with ... Hibernate only :-) Since 6 month I'm in the lucky position to do
my coding without JavaScript/Typescript frontend framework, REST API and
JPA. Just Vaadin and JOOQ ... and thats great ! But I digress.....
I'm currious why the UPDATE statement generated by JOOQ are so much more
complicated with SQLServer than with using PostgreSQL ?
A simple UPDATE abc WHERE xyz = 123 becomes to:
DECLARE @RESULT TABLE
(
[id] INT,
[employee_username] VARCHAR(100),
[leistung_id] INT,
[date] DATE,
[duration] NUMERIC(5, 2),
[created_at] datetime2(3),
[created_by] VARCHAR(100)
);
UPDATE
[timetrack]
SET
[timetrack].[employee_username] = 'XXX',
[timetrack].[leistung_id] = 9,
[timetrack].[date] = CAST('2021-12-21' AS DATE),
[timetrack].[duration] = 7,
[timetrack].[created_at] = CAST('2021-12-22 08:33:38.43859' AS
datetime2),
[timetrack].[created_by] = 'XXX' output [inserted].[id],
[inserted].[employee_username],
[inserted].[leistung_id],
[inserted].[date],
[inserted].[duration],
[inserted].[created_at],
[inserted].[created_by]
INTO
@result
WHERE
[timetrack].[id] = 1;
MERGE
INTO
@result [r]
USING
(
( SELECT
[timetrack].[id],
[timetrack].[employee_username] [alias_99784968],
[timetrack].[leistung_id] [alias_90450706],
[timetrack].[date] [alias_29558215],
[timetrack].[duration] [alias_56189729],
[timetrack].[created_at] [alias_31341003],
[timetrack].[created_by] [alias_31342119]
FROM
[timetrack])) [s]
ON [r].[id] = [s].[id]
WHEN MATCHED
THEN
UPDATE
SET
[employee_username] = [s].[alias_99784968],
[leistung_id] = [s].[alias_90450706],
[date] = [s].[alias_29558215],
[duration] = [s].[alias_56189729],
[created_at] = [s].[alias_31341003],
[created_by] = [s].[alias_31342119];
SELECT
[id],
[employee_username],
[leistung_id],
[date],
[duration],
[created_at],
[created_by]
FROM
@result [r];
Can you explain those strategy or link me to an explanation ?
Merry christmas and happy new year 🎄
kind regards
Dominik
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jooq-user/fd45a5c8-c0ef-4281-9601-5a41b558b979n%40googlegroups.com.