const { old_first_name, old_last_name, new_first_name, new_last_name } = awaitdb .updateTable('person') .set({ first_name:'John', last_name:'Doe' }) .output([ 'deleted.first_name as old_first_name', 'deleted.last_name as old_last_name', 'inserted.first_name as new_first_name', 'inserted.last_name as new_last_name', ]) .where('created_at', '<', newDate()) .executeTakeFirstOrThrow()
The generated SQL (MSSQL):
update "person"
set "first_name" = @1, "last_name" = @2
output "deleted"."first_name" as "old_first_name",
"deleted"."last_name" as "old_last_name",
"inserted"."first_name" as "new_first_name",
"inserted"."last_name" as "new_last_name"
where "created_at" < @3
merge into "person"
using "pet" on "pet"."owner_id" = "person"."id"
when matched then delete
when not matched then
insert ("first_name", "last_name", "gender")
values (@1, @2, @3)
output "inserted"."id" as "inserted_id", "deleted"."id" as "deleted_id"
Type Parameters
OEextends |AliasedExpression<any,any> |AliasedExpressionFactory<OutputDatabase<DB,TB,OP>,OP> |`deleted.${string}` |`inserted.${string}` |`deleted.${string} as ${string}` |`inserted.${string} as ${string}`
Allows you to return data from modified rows.
On supported databases like MS SQL Server (MSSQL), this method can be chained to
insert
,update
,delete
andmerge
queries to return data.Also see the outputAll method.
Examples
Return one column:
The generated SQL (MSSQL):
Return multiple columns:
The generated SQL (MSSQL):
Return arbitrary expressions:
The generated SQL (MSSQL):
Return the action performed on the row:
The generated SQL (MSSQL):