Skip to content

Commit 03d6ee3

Browse files
authored
Update MultithreadedOrderInsertMain.cs
There is a bug in the code when it tries to append the union, it generates invalid SQL. By encapsulating the underlying select's into parens, it eliminates the issue in both cases (just the first query vs both queries unioned).
1 parent bccd666 commit 03d6ee3

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

samples/databases/wide-world-importers/workload-drivers/order-insert/MultithreadedOrderInsert/MultithreadedOrderInsertMain.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,10 @@ public void PerformSqlTask(int TaskNumber, MultithreadedOrderInsertMain ParentFo
151151
var orderTable = new DataTable("Orders");
152152
da.Fill(orderTable);
153153

154-
selectCommand.CommandText = "SELECT TOP(7) 1 AS OrderReference, si.StockItemID, si.StockItemName AS [Description], FLOOR(RAND() * 10) + 1 AS Quantity FROM Warehouse.StockItems AS si WHERE IsChillerStock = 0 ORDER BY NEWID()";
154+
selectCommand.CommandText = "SELECT * FROM (SELECT TOP(7) 1 AS OrderReference, si.StockItemID, si.StockItemName AS [Description], FLOOR(RAND() * 10) + 1 AS Quantity FROM Warehouse.StockItems AS si WHERE IsChillerStock = 0 ORDER BY NEWID()) x";
155155
if (rnd.Next(1, 100) < 4)
156156
{
157-
selectCommand.CommandText += "UNION ALL SELECT TOP(1) 1 AS OrderReference, si.StockItemID, si.StockItemName AS [Description], FLOOR(RAND() * 10) + 1 AS Quantity FROM Warehouse.StockItems AS si WHERE IsChillerStock <> 0 ORDER BY NEWID()";
157+
selectCommand.CommandText += " UNION ALL SELECT * FROM (SELECT TOP(1) 1 AS OrderReference, si.StockItemID, si.StockItemName AS [Description], FLOOR(RAND() * 10) + 1 AS Quantity FROM Warehouse.StockItems AS si WHERE IsChillerStock <> 0 ORDER BY NEWID()) x";
158158
}
159159
selectCommand.CommandText += ";";
160160
var orderLinesTable = new DataTable("OrderLines");

0 commit comments

Comments
 (0)