Подскажите начинающему - как работать в SQL-сервере c массивами

Alexander Rudenko
Дата: 13.02.2001 18:53:27
Подскажите, как мне в хранимой процедуре использовать массивы

(avr555@aport.ru)
SergSuper
Дата: 14.02.2001 09:47:10
никак
их там и нет

приходиться пользоваться временными таблицами
Oleg F
Дата: 14.02.2001 13:45:33
Массивов нет и их сильно не хватает. Я вместо них иногда использую строки с разделителем (в т.ч. и таки же "псевдомногозначные" VARCHAR поля с разделителем значений).
Alexander Rudenko
Дата: 14.02.2001 19:09:30
Это сообщение меня просто убило... И даже в 2000-ном?
Garya
Дата: 14.02.2001 19:31:33
И даже в 2000-ом. Правда, в нем есть переменные типа Table, которые создают альтернативу использования временных таблиц. А зачем тебе массивы? Не собираешься ли ты с помощью SQL-запроcа вычислять детерминант матрицы ? Вообще-то, массивы - не единственное, чего нет в T-SQL. Там еще нет множественного наследования, перегрузки операций, и даже простого цикла FOR. Это все элементы алгоритмического языка. И хотя некоторые подобные элементы в нем имеются, он в основном остается языком запросов.
Alexander Rudenko
Дата: 14.02.2001 19:39:15
Просто мне необходимо построить т.н. таблицу иерархий т.е.
1 2 3 n
1 2 4 5 n
1 6 7 8 n

И т.д.
При помощи такого массива я свободно могу перейти от нижне записи к верхней и наоборот или для верхнего уровня найти все нижние.

Просто со временными таблицами, я думаю, у меняы такого не получится.
SergSuper
Дата: 15.02.2001 10:36:31
Если я правильно понял, то имеются ввиду деревья.
Но они строятся не совсем так.
Есть хорошая статься по этому делу http://sdm.viptop.ru/articles/sqltrees.html

В любом случае массивы для иерархических данных не имеет смысла использовать.
Oleg F
Дата: 15.02.2001 15:25:20
Если имеестся ввиду иерархичское дерево, то с помощью одной реляционной таблицы элементарно строится иерархическое дерево со сколь угодно большим количеством иерархий и по нему элементарно переходить от высших узлов к низшим и наоборот. Просто в каждой строке таблицы хранится в отдельном столбце код родительского узла. И всё. Можно несколько деревьёв в одну таблицу запихать (ведь в принципе каждую ветку дерева можно рассматривать как отдельное дерево).