Что не так?

kika

Создаю такую функцию:
CREATE FUNCTION [dbo].[GetMonth] (@m int ) 
RETURNS varchar(<b>50</b>)
AS 
BEGIN 
	declare @res varchar(<b>50</b>)
	select @res=
	Case 	when @m=<b>1</b> then 'January'
		when @m=<b>2</b> then 'Febrary'
		when @m=<b>3</b> then 'March'
		when @m=<b>4</b> then 'April'
		when @m=<b>5</b> then 'May'
		when @m=<b>6</b> then 'June'
		when @m=<b>7</b> then 'July'
		when @m=<b>8</b> then 'August'
		when @m=<b>9</b> then 'September'
		when @m=<b>10</b> then 'October'
		when @m=<b>11</b> then 'November'
		when @m=<b>12</b> then 'December'
	End 
	return @res
	
END
А мне пишет:Error 2010: Cannot perform alter on dbo.GetMonth because it is an incompatible object type.Что не так?
8 ответов

kika

Может попровать SELECT на SET поменять?


kika

У меня ваш код нормально работает. Функция создается и вызывается.Что-то вы недоговариваете. Или может это глюк Enterprise manager'а? Попробуйте этот код выполнить в Query Analyzer'е.


kika

Error 2010: Cannot perform alter on dbo.GetMonth because it is an incompatible object type.
Есть объект с таким именем, но другим типомНапрмер Inline функция, а вы ее пытаетесь заменить Scalar функциейСовет: удалите старую и только потом создавайте новую


kika

А скорее всего имя GetMonth уже где то используется...


kika

Видимо это был и правда глюк!Создаю функцию с друким именем - все нормально!paparome, можете подоступнее объяснить что это было?


kika

А чо ты папу спрашиваешь,спроси,лучше свою базу
select * from sysobjects where name='GetMonth'


kika

Зачем придумывать велосипед...
Examples
This example extracts the month name from the date returned by GETDATE.

SELECT DATENAME(month, getdate()) AS 'Month Name'