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

Откуда:
Сообщений: 22
declare
 @a datetime
...  далее некие действия которые изменяют @a    
print @a


как вернуть @a как значение (что-то типа return @a),
которое можно использовать далее в С# как-то так
int i=cmd.ExecuteScalar();
15 окт 12, 09:08    [13317866]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
create procedure MyProc
as
declare
 @a datetime
...  далее некие действия которые изменяют @a    
return @a
15 окт 12, 09:44    [13318041]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
kabee
int i = cmd.ExecuteScalar();
SELECT

Но лучше уж для одиночных значений использовать OUT параметры процедур, точно не запутаетесь с порядком SELECT и вообще-то они для Сетов (таблиц), а не для именованных значений.
15 окт 12, 09:49    [13318063]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Knyazev Alexey
create procedure MyProc
as
declare
 @a datetime
...  далее некие действия которые изменяют @a    
return @a


ааа, у вас не число...тогда через output
15 окт 12, 09:52    [13318085]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
kabee
Member

Откуда:
Сообщений: 22
сделал вот так:
CREATE PROC my_proc
@m INT,
@a int OUTPUT
AS
.....


теперь думаю как вернуть значение @a.
вызываю
EXEC my_proc6 @m=10, @s=20

но хотелось бы вернуть как в селекте
15 окт 12, 10:08    [13318202]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
kabee
Member

Откуда:
Сообщений: 22
Knyazev Alexey,
ввел в заблуждение, на самом деле @a int
15 окт 12, 10:11    [13318222]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
kabee
Knyazev Alexey,
ввел в заблуждение, на самом деле @a int


ну тогда и через ретурн можно...

create procedure MyProc
@a int output
as
set @a = @a * 10
return @a
go


declare @i int = 10, @j int
exec @j = MyProc @i out
select @i, @j
15 окт 12, 10:23    [13318328]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
kabee
Member

Откуда:
Сообщений: 22
Knyazev Alexey,

сделал вот так:
create FUNCTION [dbo].[ss] (@a int, @b int)
	RETURNS int
AS
begin
    set @a = @a+@b
    return @a
end


и получаю значение так:

DECLARE @hash table ([hash] varbinary(max))
INSERT INTO @hash
EXECUTE ss @a=10, @b=20
SELECT TOP(1) hash FROM @hash


но результат не возвращается. почему так может быть?
15 окт 12, 10:31    [13318373]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
kabee
но результат не возвращается. почему так может быть?


select [dbo].[ss] (10,20)
15 окт 12, 10:35    [13318400]     Ответить | Цитировать Сообщить модератору
 Re: вернуть значение в запросе  [new]
kabee
Member

Откуда:
Сообщений: 22
Knyazev Alexey, спасибо! разобрался! заодно неожиданно понял, что мне не надо использовать процедуру/функцию =)
еще раз спасибо, навели на мысль
15 окт 12, 10:36    [13318401]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить