-1
我如何使用insert into myTABLE (. . . .. .) select * from(.......)
。我尝试写一些linq查询,但我不能。请看linq查询。我怎样才能插入更多的数据插入与更多的选择语句linqToSQL查询?
SQL:
INSERT INTO ActualAmountsByLocation (ItemBarcode, Location, LocationName, Amount, isCustomerItem, LastUpdate)
SELECT * FROM
(SELECT DISTINCT
m.ItemBarcode,
m.ToLocationType + m.ToNo AS Location,
l.shortdesc AS LocationName,
dbo.spGetActualAmountByLocation(m.ItemBarcode, m.ToLocationType + m.ToNo) AS Amount,
0 AS isCustomerItem,
GETDATE() AS LastUpdate
FROM
dbo.StockMovement m, RefLocations l
WHERE
m.ToLocationType = 'L'
AND m.ToLocationType + m.ToNo = l.code
AND m.ItemBarcode = @Barcode
AND m.TransactionType = 1
) a
ORDER BY ItemBarcode, Location
UPDATE ActualAmountsByLocation
SET isCustomerItem = 1
WHERE ItemBarcode IN
(SELECT barcode FROM StockMaterials WHERE barcode = @Barcode AND ownership = 1)
UPDATE ActualAmountsByLocation
SET isCustomerItem = 1
WHERE ItemBarcode IN
(SELECT barcode FROM StockTools WHERE barcode = @Barcode AND ownership = 1)
UPDATE ActualAmountsByLocation
SET isCustomerItem = 1
WHERE ItemBarcode IN
(SELECT barcode FROM StockComponents WHERE barcode = @Barcode AND ownership = 1)
SET @ReturnMsg = RTRIM(@ReturnMsg) + 'E25: Transaction completed successfully ' + CHAR(13) + CHAR(10)
的Linq:
if (ToLocationType == 'L')
{
var stokRefLocation = (from m in stockMovementCtx.StockMovements
from l in stockMovementCtx.RefLocations
where m.ToLocationType == 'L' && m.ToLocationType + m.ToNo == l.code && m.ItemBarcode == Barcode && m.TransactionType == 1
orderby m.ItemBarcode, l.shortdesc
select new
{
myItemBarcode= m.ItemBarcode,
myLocation = m.ToNo + m.ToNo,
myLocationName = l.shortdesc,
myAmount = stockMovementCtx.spGetActualAmountByLocation(m.ItemBarcode, m.ToLocationType + m.ToNo),
myIsCustomerItem = 0,
myLastUpdate = DateTime.Now
}).Distinct();
var stokMovement2 = new ActualAmountsByLocation()
{
ItemBarcode = stokRefLocation. //.. how can i do that? I want to see stokRefLocation.myItemBarcode
}
}
}
如果你已经在T-SQL中有这个,那么你为什么要将它改为Linq-to-SQL? L2S非常适合处理单个记录及其关系,或者一小排行。当处理复杂的SQL时,它并不是真正的冠军 - 这就是为什么我们有SQL。使用正确的工具进行工作 - 在T-SQL中保留这个工具,并使用标准的ADO.NET从应用中调用它。 – 2010-06-28 11:02:30