Помимо нечетной конкатенации строк, она выглядит так, как будто все можно сделать за один запрос вместо четырех.Прекрасно иметь более одного критерия в соединении.Что-то не так:
FROM CRSTaskReceiver
INNER JOIN CRSTask
ON CRSTaskReceiver.CRSTaskID = CRSTask.ID
INNER JOIN CRS_BuiltinGroup
ON CRSTaskReceiver.ReceiverID = CRS_BuiltinGroup.ID AND CRSTaskReceiver.ReceiverType = 4
WHERE CRSTask.ParentTask = @TaskID
Кроме того, приведенная ниже часть функции, кажется, абсолютно ничего не делает.Что это значит?
DECLARE @tmpLength INT
SET @tmpLength = 0
SET @tmpLength = LEN(@tmp)
IF @tmpLength > 0
BEGIN
SET @tmp = SUBSTRING(@tmp, 0, @tmpLength)
END