Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TSQL и хранимые процедуры / 6 сообщений из 6, страница 1 из 1
08.05.2002, 08:46
    #32029733
apih
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TSQL и хранимые процедуры
у меня есть следующая процедура

create function funcGet
@db varchar(50),
@num int OUTPUT

AS
declare @str varchar(100)
select @str='select @num=id from '+ @db +'where id=0'
exec (@str)

GO

А теперь вопрос как мне этот @num вернуть???
...
Рейтинг: 0 / 0
08.05.2002, 09:12
    #32029738
MX_Air
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TSQL и хранимые процедуры
В виде рекордсета
...
Рейтинг: 0 / 0
08.05.2002, 09:21
    #32029742
hermit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TSQL и хранимые процедуры
Судя по надписи у тебя не процедура а всетаки функция

а синтаксис функции немного другой
и вызывать их нужно примерно так

для чего придумали слово RETURN ?

CREATE FUNCTION GetOutQnty (@PartID int)
RETURNS Float AS
BEGIN

RETURN (Select ISNULL(Sum(Qnty),0) from Material (NOLOCK) where PlaceID=Material.PlaceID and PartID=@PartID and Material.DocumentType>1)

END



а вот ответ MX_Air правильный для именно процедуры
...
Рейтинг: 0 / 0
08.05.2002, 09:38
    #32029747
MX_Air
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TSQL и хранимые процедуры
А вот ещё вариант :
1) Создать врем. таблицу
2) в сформированом запросе записать значения в таблицу
3) после выполнения запроса присвоить значение переменной, взяв его из врем. таблицы
4) удалить таблицу
...
Рейтинг: 0 / 0
10.05.2002, 11:27
    #32029845
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TSQL и хранимые процедуры
\ndeclare @var1 int, @var2 varchar(100), @var3 varchar(100), @var4 int
declare @mysql nvarchar(4000)
set @mysql = 'set @var1 = @var1 + @var4; set @var2 = ''CCCC''; set @var3 = @var3 + ''dddd'''
set @var1 = 0
set @var2 = 'BBBB'
set @var3 = 'AAAA'
set @var4 = 10

select @var1, @var2, @var3
exec sp_executesql @mysql, N'@var1 int out, @var2 varchar(100) out, @var3 varchar(100) out, @var4 int', @var1 = @var1 out, @var2 = @var2 out, @var3 = @var3 out, @var4 = @var4
select @var1, @var2, @var3
...
Рейтинг: 0 / 0
13.05.2002, 03:52
    #32029936
apih
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TSQL и хранимые процедуры
СПАСИБО!!!!! Теперь всё чики-пуки

однака интересно, "в виде рекордсета" - это как???
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TSQL и хранимые процедуры / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]