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

Откуда:
Сообщений: 49
Всем доброго времени суток!

При вызове пользовательской функции:
select dbo.Get_Option(1)


получаю ошибку:
Must declare the scalar variable "@Optionid".


Текст функции:
ALTER FUNCTION [dbo].[Get_Option] ( @OptionID int )  
-- (0049587) Sashok 03.05.2011 сначала берем атрибут ближайшего сервера, а потом опцию
RETURNS nvarchar(255) AS  
BEGIN 
	Declare	@retValue nvarchar(255)

	select top 1 
		@retValue = Dat.AttrText
	From	DS_ObjectsAttributes_Cash As Dat with(nolock)
	Inner Join
		Get_DistID2Root(null) As Way2Root
		On	Dat.Id = Way2Root.OwnerDistId
		And Dat.DictID	= 2
		And	Dat.AttrId	= @OptionID
	order by Way2Root.Dept desc

	if @retValue is null
		Select 	@retvalue = val	From d_options Where OptionID = @Optionid

	Return	@RetValue
END


select @@version

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 


При вызове на другом сервере все происходит нормально.
29 май 12, 09:25    [12629513]     Ответить | Цитировать Сообщить модератору
 Re: Вызов пользовательской функции возвращает ошибку  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Kopilogus
Всем доброго времени суток!

При вызове пользовательской функции:
select dbo.Get_Option(1)


получаю ошибку:
Must declare the scalar variable "@Optionid".


Текст функции:
ALTER FUNCTION [dbo].[Get_Option] ( @OptionID int )  
-- (0049587) Sashok 03.05.2011 сначала берем атрибут ближайшего сервера, а потом опцию
RETURNS nvarchar(255) AS  
BEGIN 
	Declare	@retValue nvarchar(255)

	select top 1 
		@retValue = Dat.AttrText
	From	DS_ObjectsAttributes_Cash As Dat with(nolock)
	Inner Join
		Get_DistID2Root(null) As Way2Root
		On	Dat.Id = Way2Root.OwnerDistId
		And Dat.DictID	= 2
		And	Dat.AttrId	= @OptionID
	order by Way2Root.Dept desc

	if @retValue is null
		Select 	@retvalue = val	From d_options Where OptionID = @Optionid

	Return	@RetValue
END


select @@version

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 


При вызове на другом сервере все происходит нормально.


А кули, коллэшен регистрозависимый
29 май 12, 09:34    [12629581]     Ответить | Цитировать Сообщить модератору
 Re: Вызов пользовательской функции возвращает ошибку  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Установка SQL Server выполнялась сторонней организацией, какие есть варианты решения проблемы?
29 май 12, 09:39    [12629624]     Ответить | Цитировать Сообщить модератору
 Re: Вызов пользовательской функции возвращает ошибку  [new]
step_ks
Member

Откуда:
Сообщений: 936
писать код так, чтобы работал на любом разумном для вашего приложения коллэйшене.
29 май 12, 09:41    [12629637]     Ответить | Цитировать Сообщить модератору
 Re: Вызов пользовательской функции возвращает ошибку  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Спасибо, вопрос закрыт!
29 май 12, 09:53    [12629703]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить