Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 изменение функции по условию  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1199
Почему первое условие работает, а второе источает кучу ругани (Incorrect syntax near the keyword 'Function' и др)
Хотя отдельно, без условия, alter функции выполняется
if 1=1
begin

ALTER TABLE [dbo].[ProdStat]
ADD [WeightedAverageDensity] float DEFAULT 0 not NULL

end
GO


if 1=1
ALTER Function [dbo].[UDF_Calendar] (@periodBegin date, @periodEnd date)
returns @Calendar table (clDate datetime)
AS
BEGIN
	...

	
	RETURN 
END

go
20 мар 19, 14:26    [21838519]     Ответить | Цитировать Сообщить модератору
 Re: изменение функции по условию  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1199
В первом стоит begin/end после условия, забыл стереть, но сути дела это не меняет
20 мар 19, 14:33    [21838533]     Ответить | Цитировать Сообщить модератору
 Re: изменение функции по условию  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36698
if 1=1
exec ('ALTER Function [dbo].[UDF_Calendar] (@periodBegin date, @periodEnd date)
returns @Calendar table (clDate datetime)
AS
BEGIN
	...

	
	RETURN 
END')
20 мар 19, 14:33    [21838534]     Ответить | Цитировать Сообщить модератору
 Re: изменение функции по условию  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1199
Гавриленко Сергей Алексеевич, а почему напрямую то не работает? Особенности реализации?
20 мар 19, 14:34    [21838537]     Ответить | Цитировать Сообщить модератору
 Re: изменение функции по условию  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
minva
Гавриленко Сергей Алексеевич, а почему напрямую то не работает? Особенности реализации?

Особенности доеументации
20 мар 19, 14:42    [21838550]     Ответить | Цитировать Сообщить модератору
 Re: изменение функции по условию  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3148
Когда-то давным давно, GreenSunrise уже задавала здесь этот вопрос. Ответ был столь же прост, сколь и элегантен:
if 1 != 1
  set noexec on;
go
ALTER Function [dbo].[UDF_Calendar] (@periodBegin date, @periodEnd date)
returns @Calendar table (clDate datetime)
AS
BEGIN
	...

	
	RETURN 
END
go
set noexec off;
go
20 мар 19, 15:23    [21838610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить