0
我未能谷歌这种情况下:我想插入新的行到(时隙)表,一些记录(由WHERE子句选择),并添加3列作为用户定义功能(计算空闲时隙日期,开始和结束时间)。即使UDF返回多于一行,也必须运行。SQL Server:结合SELECT和相关的UDF结果
基于微软的有关使用UDF建议:
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(1209);
我想出了这个概念:
INSERT INTO PlanTimeSlots (........................)
SELECT
PRJ.ID as RID,
GST.SlotDate as SlotDate,
GST.SlotStart as TimeStart,
GST.SlotEnd as TimeEnd,
PRJ.WPGroupID as WPGroupID,
45 as Priority
FROM
PlanRJ as PRJ
LEFT JOIN
(SELECT
SlotDate, SlotStart, SlotEnd
FROM
dbo.GetSuitableTimeSlot(PRJ.ID, PRJ.WPGroupID,
PRJ.DateReqBy, PRJ.DurationMin)) AS GST ON GST.JID = PRJ.ID
WHERE
........;
所以我冗余传递一个RID的UDF,这是返回GST.JID ,因此将UDF结果集加入主选择中有一个关键。
这是行,还是有更好的解决方案?它将与数百到数千个条目一起工作,我不确定这个概念是否可以很好地发挥作用。