Update¶
The update is a bit different than SQL because it uses the From method:
IAlias person = sql.Alias("person");
IAlias dept = sql.Alias("dept");
// Update
IQuery query1 = sql.Query
.Update()
.Set(person["Name"], "SomeName")
.From(person);
// With join
IQuery query2 = sql.Query
.Update()
.Set(person["Name"], "SomeName")
.From(person)
.Join(dept)
.On(dept["Id"].Eq(person["DepartmentId"]));
// Update join table
IQuery query3 = sql.Query
.Update()
.Set(dept["Name"], "SomeName2")
.From(person)
.Join(dept)
.On(dept["Id"].Eq(person["DepartmentId"]));
// Update multiple tables
IQuery query4 = sql.Query
.Update()
.Set(person["Name"], "SomeName")
.Set(dept["Name"], "SomeName2")
.From(person)
.Join(dept)
.On(dept["Id"].Eq(person["DepartmentId"]));
// Update top
IQuery query5 = sql.Query
.Update(x => x.Top(10))
.Set(person["Name"], "SomeName")
.From(person);
// Add update options to the query
IUpdate update = sql.Update().Top(10);
IQuery query6 = sql.Query
.Update(update)
.Set(person["Name"], "SomeName")
.From(person);
With lambda expressions:
Person person = null;
Department dept = null;
// Update
IQuery query1 = sql.Query
.Update()
.Set(() => person.Name, "SomeName")
.From(() => person);
// With join
IQuery query2 = sql.Query
.Update()
.Set(() => person.Name, "SomeName")
.From(() => person)
.Join(() => dept)
.On(() => dept.Id == person.Department.Id);
// Update join table
IQuery query3 = sql.Query
.Update()
.Set(() => dept.Name, "SomeName2")
.From(() => person)
.Join(() => dept)
.On(() => dept.Id == person.Department.Id);
// Update multiple tables
IQuery query4 = sql.Query
.Update()
.Set(() => person.Name, "SomeName")
.Set(() => dept.Name, "SomeName2")
.From(() => person)
.Join(() => dept)
.On(() => dept.Id == person.Department.Id);
// Update top
IQuery query5 = sql.Query
.Update(x => x.Top(10))
.Set(() => person.Name, "SomeName")
.From(() => person);
// Add update options to the query
IUpdate update = sql.Update().Top(10);
IQuery query6 = sql.Query
.Update(update)
.Set(() => person.Name, "SomeName")
.From(() => person);
Warning
Not all engines support update with join or update multiple tables.