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

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

вот заготовка:
drop table t1

with aa as (select top(5) * from sys.all_objects)
select * into t1 from aa

create procedure test1
as
begin
	declare @name varchar(128); 
	select @name=name from t1;
	print @name;
end;

exec test1
я полагал, что exec test1 должен был выдать мне ошибку, поскольку
я пытаюсь сохранить множество значений в 1 переменной, но вместо этого
SQL Server выполнил эту процедуру без ошибок и даже вывел значение...
подскажите, пожалуйста, это такая логика сервера или я что то не понимаю.
Если это такая логика, то это может привести к скрытым ошибкам.

спасибо.
19 ноя 09, 15:20    [7951526]     Ответить | Цитировать Сообщить модератору
 Re: Неоднозначность при сохранении множества в переменной  [new]
Glory
Member

Откуда:
Сообщений: 104760
use-se

я полагал, что exec test1 должен был выдать мне ошибку, поскольку
я пытаюсь сохранить множество значений в 1 переменной, но вместо этого
SQL Server выполнил эту процедуру без ошибок и даже вывел значение...
подскажите, пожалуйста, это такая логика сервера или я что то не понимаю.
Если это такая логика, то это может привести к скрытым ошибкам.


Да, это логика сервера. Документированная.
19 ноя 09, 15:21    [7951534]     Ответить | Цитировать Сообщить модератору
 Re: Неоднозначность при сохранении множества в переменной  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
BOL->SELECT @local_variable
...
If the SELECT statement returns more than one value, the variable is assigned the last value that is returned.
19 ноя 09, 15:24    [7951567]     Ответить | Цитировать Сообщить модератору
 Re: Неоднозначность при сохранении множества в переменной  [new]
use-se
Member

Откуда: Москва
Сообщений: 448
спасибо
19 ноя 09, 15:33    [7951654]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить