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

Откуда: Нижний Новгород
Сообщений: 325
WITH Rec (id, pid, title)
AS (
SELECT id, pid, title FROM test_table
UNION ALL
SELECT Rec.id, Rec.pid, Rec.title
FROM Rec, test_table
WHERE Rec.id = test_table.pid
)
SELECT * FROM Rec
WHERE pid IS NULL;

Таблица test_table заполнена
Пример взят отсюда (теоретически): http://club.shelek.ru/viewart.php?id=306

Скажите пожалуйста, почему не работает? Не могу найти рабочих примеров. Везде уже таблицы заполненные. а данных нет. вот это пример нашёл, а не пашет(
9 июл 14, 13:24    [16280721]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Glory
Member

Откуда:
Сообщений: 104751
enakenenaken
Скажите пожалуйста, почему не работает?

А почему вы решили, что не работает ?

enakenenaken
Не могу найти рабочих примеров.

В хелпе все примеры рабочие
9 июл 14, 13:25    [16280736]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Так и пишет - "не работает" - что ли?
9 июл 14, 13:26    [16280738]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Пишет: Сообщение 156, уровень 15, состояние 1, строка 1
Incorrect syntax near the keyword 'WITH'.
9 июл 14, 13:26    [16280740]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
select @@version покажите
9 июл 14, 13:26    [16280744]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Microsoft SQL Server 2000 - 8.00.2301 (Intel X86) Jan 6 2012 17:23:12 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
9 июл 14, 13:27    [16280754]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
_djХомяГ
Guest
К сказанному можно попробовать поставить точку с запятой перед WITH
;WITH
9 июл 14, 13:28    [16280767]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
enakenenaken
Microsoft SQL Server 2000 - 8.00.2301 (Intel X86) Jan 6 2012 17:23:12 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
Хелп надо читать от той версии сервера, которую вы используете. Не было в 2000м никакого CTE. И в 2005м тоже не было.

Сообщение было отредактировано: 9 июл 14, 13:28
9 июл 14, 13:28    [16280768]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
_djХомяГ
Guest
В 2005 СTE как раз таки появился
9 июл 14, 13:29    [16280778]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Гавриленко Сергей Алексеевич,

А как же? Нет рекурсии что ли в 2000м? Я в поисковиках искал рекурсию отдельно для 2000, но там находятся всё те же конструкции по типу такой, какую я кинул
9 июл 14, 13:29    [16280782]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
_djХомяГ
В 2005 СTE как раз таки появился
Может быть. Не помню уже.
9 июл 14, 13:31    [16280795]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Glory
Member

Откуда:
Сообщений: 104751
enakenenaken
Нет рекурсии что ли в 2000м?

Рекурсия - это алгоритм. Он есть везде.
А вот команда, реализующая этот алгоритм, есть не но всех языках
9 июл 14, 13:31    [16280799]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Glory, Как же его реализовывать то? Ручками?
9 июл 14, 13:33    [16280813]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
enakenenaken
Glory, Как же его реализовывать то? Ручками?
Головой, прежде всего. Потом уже ручками. Как - ищите поиском.
9 июл 14, 13:34    [16280822]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Glory
Member

Откуда:
Сообщений: 104751
enakenenaken
Glory, Как же его реализовывать то? Ручками?

Можете головой.
Например, нанять программиста и продиктовать ему алгорим для реализации.
9 июл 14, 13:35    [16280833]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Гавриленко Сергей Алексеевич
_djХомяГ
В 2005 СTE как раз таки появился
Может быть. Не помню уже.
Точно. В 2005-м было.
9 июл 14, 13:37    [16280850]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Всем спасибо за ваши бесценные совет!
9 июл 14, 13:40    [16280875]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4994
enakenenaken
Всем спасибо за ваши бесценные совет!

Интернет кишит реализациями.
9 июл 14, 18:20    [16282946]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия (не работает)  [new]
Mairos
Member

Откуда:
Сообщений: 555
enakenenaken, [url=]http://msdn.microsoft.com/en-us/library/aa172799.aspx[/url]
10 июл 14, 11:27    [16285274]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить