2016-09-16 2 views
0

У меня есть функция, которая вызывает узел CLRSQL Server 2008 R2 заявления Условные во внешней функции

CREATE FUNCTION [dbo].[fGetUTCDate](@LocalDate [datetime]) 
RETURNS [datetime] WITH EXECUTE AS CALLER 
AS 
EXTERNAL NAME [MyAssembly].[MyClassName].[GetUTCDateTime] 
GO 

мне нужно добавить условный оператор внутри этой функции, как если @LocalDate особая дата затем вернуть другое значение иначе используйте сборку, например:

CREATE FUNCTION [dbo].[fGetUTCDate](@LocalDate [datetime]) 
RETURNS [datetime] WITH EXECUTE AS CALLER 
AS 
BEGIN 
RETURN 
CASE WHEN @LocalDate = 'xxxxx' THEN 'XYZ' ELSE 
    EXTERNAL NAME [MyAssembly].[MyClassName].[GetUTCDateTime] 
END 
END 
GO 

Однако, похоже, я не могу добавить условные утверждения внутри этой функции.

Мои ограничения в текущих требованиях: a) Я не могу изменить сборку b) Функция используется в более чем 250 SP, поэтому я не могу создать другую функцию, которая вызывает эту внешнюю функцию.

Есть ли другой способ достижения моего требования?

Благодаря

+0

Почему это не может быть добавлен внутри условного утверждения? –

+0

функция не компилируется – NetTechie

ответ

3

Вы можете

1) Переименовать существующую функцию

2) Создать новую функцию с IF логики со старым именем, которое называет старую функцию

+0

Отлично! Благодаря!! – NetTechie