Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Sandist Member Откуда: Сообщений: 433 |
Здравствуйте, помогите понять пожалуйста:Declare @Number_r int, @id_tovs nvarchar(max), @id_tts nvarchar(max) set @Number_r = 9285 set @id_tovs = '22664' set @id_tts = '12205' If OBJECT_ID('tempdb..#id_tovs') is not null Drop Table #id_tovs create table #id_tovs (id_tov int) insert into #id_tovs select a.val from master..ParsingStr(@id_tovs, ',') as a If OBJECT_ID('tempdb..#id_tts') is not null Drop Table #id_tts create table #id_tts (id_tt int) insert into #id_tts select a.val from master..ParsingStr(@id_tts, ',') as a SELECT '[tt_tov_kontr_init]', * FROM [M2].[dbo].[tt_tov_kontr_init](nolock) where Number_r IN (@Number_r , - @Number_r) and (id_tov in (select id_tov from #id_tovs) or @id_tovs = '') and (id_tt in (select id_tov from #id_tts) or @id_tts = '') order by id_tt Есть такой запрос, если обратите внимание на строку and (id_tt in (select id_tov from #id_tts) or @id_tts = '') вы заметите, что в таблице #id_tts отсутствует поле id_tov, тем не менее запрос отрабатывает без ошибки почему так происходит? |
24 май 19, 10:59 [21892891] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
но и все поля внешних запросов. В первую очередь, если у поля не задано имя таблицы или алиас, считается, что оно из одной из таблиц подзапроса. Если же там такого поля нет, то оно ищется у ближайшего внешнего запроса, затем у внешнего по отношению к внешнему и т.д. При этом в подзапросе вместо поля используется его значение из текущей строки внешнего запроса. Вывод: всегда пишите алиасы у всех полей во всех запросах! И не будут возникать такие вот вопросы... |
||
24 май 19, 11:20 [21892928] Ответить | Цитировать Сообщить модератору |
Sandist Member Откуда: Сообщений: 433 |
iap, точно! спасибо большое! |
24 май 19, 11:21 [21892931] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
|
||
24 май 19, 11:34 [21892954] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
Когда вы через год будете править этот запрос:
|
||||||
24 май 19, 11:37 [21892959] Ответить | Цитировать Сообщить модератору |
Sandist Member Откуда: Сообщений: 433 |
alexeyvg, спасибо большое за помощь это не мой запрос, я смотрю запрос написанный др человеком и не мог понять почему он не работает то есть как раз тот вариант про который вы говорите, сложно определять ошибку спустя время когда запрос может быть забыт |
24 май 19, 11:49 [21892975] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |