Может ли кто-нибудь помочь мне найти ошибку с SP - PullRequest
0 голосов
/ 08 августа 2011
create function Fun12(@InsCd varchar)
returns varchar(100)
as 
begin
declare @ret varchar(52)
set @ret = (select [InsName] from [Assignment4].[dbo].[1466] 
   where rtrim(ltrim([InsCd]))= @InsCd)
return @ret
end

Выполнение:

declare @r varchar(50)
exec @r = dbo.Fun12 '436'

select @r

Я получаю NULL значение.Может ли кто-нибудь помочь мне найти ошибку?

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Вам необходимо указать размер для вашего параметра @InsCd.

Что-то вроде этого, но вы можете использовать другое значение, чем 20, в зависимости от размера поля InsCd.

create function Fun12(@InsCd varchar(20))
0 голосов
/ 08 августа 2011

Во-первых, вы должны убедиться, что код, содержащийся в функции, действительно что-то возвращает, когда вы запускаете ее непосредственно в SQL Server Management Studio (SSMS):

-- SQL
select InsName from [1466] where rtrim(ltrim([InsCd])) = '436';

В этом случае я бы использовал хранимую процедуру, а не функцию. Вы также можете использовать SSMS Profiler (Инструменты> Профилировщик) для мониторинга трафика на SQL Server. Таким образом, вы можете увидеть, что выполняется, посмотреть параметры для SP и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...