Queries for REPEATABLEREAD Table Hint
1. Usage of REPEATABLEREAD table hint (to be used in transaction)
SQL Server Query 1
BEGIN TRANSACTION
SELECT
OD.OrderID,
OD.ProductID,
P.ProductName,
OD.Quantity,
OD.UnitPrice,
OD.Discount
FROM [Order Details] AS OD WITH (REPEATABLEREAD) -- Read uncommitted data
JOIN Products AS P ON OD.ProductID = P.ProductID
WHERE OD.OrderID = 10248 -- See the newly inserted, uncommitted order details
OR (OD.OrderID = 10248 AND OD.ProductID = 11); -- See the updated, uncommitted order detail
ROLLBACK TRANSACTION
Create SQL query with SqlQueryBuilder 1
var (sql1, parameters1) = new SqlQueryBuilder()
.Select()
.Columns("OD.OrderID","OD.ProductID","P.ProductName","OD.Quantity","OD.UnitPrice","OD.Discount")
.From("[Order Details]","OD", new List<IHint>() { new REPEATABLEREAD() })
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("Products","P")
.On(new Column("OD.ProductID").Equale(new Column("P.ProductID")))
})
.Where(new Where(new Column("OD.OrderID").Equale(10248)).OR()
.StartBracket(new Column("OD.OrderID").Equale(10248)).AND(new Column("OD.ProductID").Equale(11)).EndBracket())
.Build();
Query build by SqlQueryBuilder 1
SELECT OD.OrderID,
OD.ProductID,
P.ProductName,
OD.Quantity,
OD.UnitPrice,
OD.Discount
FROM [Order Details] AS OD WITH (REPEATABLEREAD)
INNER JOIN
Products AS P
ON OD.ProductID = P.ProductID
WHERE OD.OrderID = @pMAIN_2507200145499841130
OR (OD.OrderID = @pMAIN_2507200145499841131
AND OD.ProductID = @pMAIN_2507200145499841132);
Parameters (If used)
Name |
Value |
@pMAIN_2507200145499841130 |
10248 |
@pMAIN_2507200145499841131 |
10248 |
@pMAIN_2507200145499841132 |
11 |
Query Results 1:
|
OrderID |
ProductID |
ProductName |
Quantity |
UnitPrice |
Discount |
1 |
10248
|
11
|
Queso Cabrales
|
12
|
14.0000
|
0
|
2 |
10248
|
42
|
Singaporean Hokkien Fried Mee
|
10
|
9.8000
|
0
|
3 |
10248
|
72
|
Mozzarella di Giovanni
|
5
|
34.8000
|
0
|