Вы не можете иметь никакого потока управляющих операторов во встроенных табличных функциях. Если @dpt is null
, запрос все равно вернет пустой набор результатов
Изменить: или, по крайней мере, будет, если правильный тип данных. У вас есть @DPT INT
и вы сравниваете столбец name
. Это кажется обреченным на неудачу во время выполнения.
Редактировать 2:
В качестве решения вы могли бы 1) просто удалить строку IF @DPT is not null
и 2) либо
- изменить тип параметра
@DPT
с INT
на что-то вроде varchar(100)
, если функция должна была искать отдел по имени,
или
изменить предложение WHERE
на что-то вроде этого:
where d.departmentid = @dpt
, если вы хотите выполнить поиск по идентификатору отдела.