Select clause can be used to insert batch data:
|
SelectQuery qryCustomer
= OQL .Select(NW.Customer.CustomerID) .From(NW.Customer) .Where(NW.Customer.ContactTitle == "Owner"); InsertQuery insOrder =
OQL .InsertInto(NW.Order) .Select(OQL .Select(NW.Order) .From(NW.Order) .Where(NW.Order.CustomerID.In(qryCustomer)) ); |
The preceding OQL can also be divided as follows:
|
SelectQuery qryCustomer
= OQL .Select(NW.Customer.CustomerID) .From(NW.Customer) .Where(NW.Customer.ContactTitle == "Owner"); SelectQuery qryOrder =
OQL .Select(NW.Order) .From(NW.Order) .Where(NW.Order.CustomerID.In(qryCustomer)); InsertQuery insOrder =
OQL .InsertInto(NW.Order) .Select(qryOrder); |
The preceding OQL can be written in the way of object expression as follows:
|
InsertQuery insOrder =
OQL .InsertInto(NW.Order) .SelectWhere(NW.Order == (NW.Customer.ContactTitle == "Owner")); |
The previous Insert statement will generate the following SQL:
|
The SQL statements generated as follows (taking SQL Server as an example) |
|
INSERT INTO
[Orders] SELECT [Orders].* FROM [Orders] WHERE
[Orders].[CustomerID] IN
(
SELECT [Customers].[CustomerID]
FROM [Customers]
WHERE
[Customers].[ContactTitle] = 'Owner'
) |
Related Topics