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

Откуда:
Сообщений: 12
Подскажите правильно ли я определяю что данный запрос не вернул значение сравнивая его с IS NULL потому как что-то не получается того чего хотел.
SET @idReg = (Select id from dbo.TB_REG where (ID_E = @idG) AND (ID_T = @idG));
	SELECT @idReg;
	if (@idReg IS NULL)
.
30 июн 11, 12:57    [10898876]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
Edkonst2008
Member

Откуда:
Сообщений: 503
Promo,

Только наверное так:

Select @idReg = id from dbo.TB_REG where (ID_E = @idG) AND (ID_T = @idG);

if (@idReg IS NULL) ...


Только надо быть уверенным, что такой селект вернет не более 1 значения
30 июн 11, 13:04    [10898925]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

если столбец id - not null, то да. если нет, надо будет еще его в isnull завернуть.

Posted via ActualForum NNTP Server 1.4

30 июн 11, 13:04    [10898929]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Только наверное так:

угу.
declare @idReg int
set @idReg = 777

Select @idReg = object_id from sys.objects where 1 = 0

if (@idReg IS NULL)
   print 'ok'
else
   print 'wtf ?!?'

Posted via ActualForum NNTP Server 1.4

30 июн 11, 13:07    [10898951]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Можно сперва присвоить @idReg значение, которого не может быть у id и после присвоения результату запроса сравнивать уже с этим значением - если не равны, тогда запрос вернул 0 строк.
30 июн 11, 13:07    [10898957]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
Promo
Member

Откуда:
Сообщений: 12
Спасибо за ответы, все получилось.
30 июн 11, 13:18    [10899043]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
1
Guest
daw
declare @idReg int
set @idReg = 777

Select @idReg = object_id from sys.objects where 1 = 0
SELECT idReg=@idReg

Угадайте, чему будет равен idReg
30 июн 11, 13:33    [10899162]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> daw
> Угадайте, чему будет равен idReg

это вы мне? я, кагбэ, на это и намекал как раз.

Posted via ActualForum NNTP Server 1.4

30 июн 11, 13:38    [10899219]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
1
daw
declare @idReg int
set @idReg = 777

Select @idReg = object_id from sys.objects where 1 = 0
SELECT idReg=@idReg

Угадайте, чему будет равен idReg
Все и так знают, что 777. Ну и что?
Правда, вопрос почему-то был задан daw...
30 июн 11, 13:39    [10899224]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с написанием процедуры  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1965
Возможно, тупой вопрос, но...

...а почему нельзя посчитать число значений, возвращаемых основных запросом?

select count(*)
From (Нужный_Запрос) as Имя_нужного_запроса

Вернул ноль - вот Вам и ответ.
1 июл 11, 23:53    [10910072]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить