Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
SQL 2005
имеется структура netsted set (индексы) вложеность не ограничена
как эти данные получить в виде XML
нужен общий принцип построения запроса

спасибо
10 сен 12, 10:24    [13138377]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
нарыл что то такое жутко страшное
это имитация XML
База Northwind

declare @T table (id int ,name varchar(100), lev int ,l int ,r int);
WITH EmployeeLevels AS
(
    SELECT
        (FirstName + ' ' + LastName) AS	Name,
        EmployeeId,
        CONVERT(VARCHAR(MAX), EmployeeId) AS thePath,
        1 AS Level
    FROM dbo.Employees
    WHERE  ReportsTo IS NULL

    UNION ALL

    SELECT
        (e.FirstName + ' ' + e.LastName) AS	Name,
        e.EmployeeId,
        x.thePath + '.' + CONVERT(VARCHAR(MAX), e.EmployeeId) AS thePath,
        x.Level + 1 AS Level
    FROM EmployeeLevels x
    JOIN dbo.Employees e on e.ReportsTo = x.EmployeeId
),
EmployeeRows AS
(
    SELECT
         EmployeeLevels.*,
         ROW_NUMBER() OVER (ORDER BY thePath) AS Row
    FROM EmployeeLevels
)
insert into @T (name, id, lev, l  ,r)
SELECT
     ER.Name,
     ER.EmployeeId,
--     ER.thePath,
     ER.Level,
--     ER.Row,
     (ER.Row * 2) - ER.Level AS Lft,
     ((ER.Row * 2) - ER.Level) + 
        (
            SELECT COUNT(*) * 2
            FROM EmployeeRows ER2 
            --WHERE ER2.thePath LIKE ER.thePath + '.%'
           where SUBSTRING(ER2.thePath , 1 , LEN(ER.thePath + '.')) =ER.thePath + '.'
        ) + 1 AS Rgt
FROM EmployeeRows ER
ORDER BY thePath;


SELECT CASE flag
         WHEN 1 THEN  '<Node name=' + CHAR(34) + t.name + CHAR(34) +'>'
         WHEN 2 THEN '</Node>'
        END AS xml_teil
   FROM (SELECT  top 100 percent name, 1 AS flag, l AS pt ,id ,lev FROM @T
        
        UNION ALL
        
        SELECT top 100 percent name, 2 AS flag, r AS pt ,id ,lev FROM @T
        
        ORDER BY pt, name ) r  JOIN @T t
     ON t.id = r.id and t.lev = r.lev
  ORDER BY r.pt, r.name


поле 'Lev' стоит в ограничении так как один и тот же id может появится в разных уровнях
один и тот же начальник в разных отделах
но я такое не проверил у себя
принимаются любые предложения по улучшению
12 сен 12, 00:53    [13149191]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
michael R,

а "наклепать" уровней "с запасом" - не вариант ?
типа так
+
declare @t table (id int, parent_id int)

insert into @t

select 1, null union all
select 2, null union all
select 3, 1 union all
select 4, 1 union all
select 5, 4 union all
select 6, null union all
select 7, 6 union all
select 8, 3 union all
select 9, 6 union all
select 10, 2

--select * from @t

;with cte as
(
select id, '-'+cast(id as varchar(max))+'-' as path, 1 as [level]
from @t where parent_id is null

union all

select t.id, cte.path+cast(t.id as varchar(max))+'-', cte.[level]+1
from @t t inner join cte on t.parent_id=cte.id 
)

select 
	cast(len(path)-len(replace(path,'-',''))-1 as int) as Tag, 
	cast(nullif(len(path)-len(replace(path,'-',''))-2,0) as int) as Parent, 
	path as [node!1!path!hide],
	[1] as [node!1!name], 
	[2] as [node!2!name], 
	[3] as [node!3!name],
	[4] as [node!4!name], 
	[5] as [node!5!name] 
from cte
pivot (max(id) for [level] in ([1], [2], [3], [4], [5])) pvt
order by [node!1!path!hide]

for xml explicit

<node name="1">
  <node name="3">
    <node name="8" />
  </node>
  <node name="4">
    <node name="5" />
  </node>
</node>
<node name="2">
  <node name="10" />
</node>
<node name="6">
  <node name="7" />
  <node name="9" />
</node>


если - "не вариант", то можно cte "слить" во времянку, и потом составить по этой времянке, динамически, аналогичный запрос с нужным количеством уровней
12 сен 12, 13:05    [13151315]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
на несколько атрибутов
+
declare @t table (id int, parent_id int, name varchar(10))

insert into @t

select 1, null, 'aaa' union all
select 2, null, 'bbb' union all
select 3, 1, 'ccc' union all
select 4, 1, 'ddd' union all
select 5, 4, 'eee' union all
select 6, null, 'fff' union all
select 7, 6, 'ggg' union all
select 8, 3, 'hhh' union all
select 9, 6, 'kkk' union all
select 10, 2, 'lll'

--select * from @t

;with cte as
(
select id, name, '-'+cast(id as varchar(max))+'-' as path, 1 as [level]
from @t where parent_id is null

union all

select t.id, t.name, cte.path+cast(t.id as varchar(max))+'-', cte.[level]+1
from @t t inner join cte on t.parent_id=cte.id 
)

select 
	cast(len(path)-len(replace(path,'-',''))-1 as int) as Tag, 
	cast(nullif(len(path)-len(replace(path,'-',''))-2,0) as int) as Parent, 
	path as [node!1!path!hide], 
	[1] as [node!1!id], case when [1] is null then null else name end as [node!1!name],
	[2] as [node!2!id], case when [2] is null then null else name end as [node!2!name],
	[3] as [node!3!id], case when [3] is null then null else name end as [node!3!name],
	[4] as [node!4!id], case when [4] is null then null else name end as [node!4!name],
	[5] as [node!5!id], case when [5] is null then null else name end as [node!5!name] 
from cte
pivot (max(id) for [level] in ([1], [2], [3], [4], [5])) pvt
order by [node!1!path!hide]

for xml explicit

<node id="1" name="aaa">
  <node id="3" name="ccc">
    <node id="8" name="hhh" />
  </node>
  <node id="4" name="ddd">
    <node id="5" name="eee" />
  </node>
</node>
<node id="2" name="bbb">
  <node id="10" name="lll" />
</node>
<node id="6" name="fff">
  <node id="7" name="ggg" />
  <node id="9" name="kkk" />
</node>
12 сен 12, 13:44    [13151626]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
ну а если связь не через panertid а через индексы left right ?
как в примере..........
12 сен 12, 14:19    [13151890]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
michael R
ну а если связь не через panertid а через индексы left right ?
как в примере..........

"в примере" ?
где "пример" ?

не отвечай сразу ...
матнись сюда - https://www.sql.ru/forum/actualthread.aspx?tid=127456 п.6.
и почитай, что такое "пример"
12 сен 12, 14:31    [13151962]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
отвечаю не сразу
вопрос стоял про индексы - сверху

пример :
второй пост в теме
таблица @Т использует индексы для хранения иерархии
она в данном случае и является основным примером
12 сен 12, 14:37    [13151997]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
michael R
отвечаю не сразу
вопрос стоял про индексы - сверху

пример :
второй пост в теме
таблица @Т использует индексы для хранения иерархии
она в данном случае и является основным примером


я тебе тоже "в цвет" отвечу

В: как разделить 0.8л коньяка на 3-их ?
О: нужно каждому налить по сотке, таким образом задача сводится к классической




у тебя - тот же случай
12 сен 12, 14:49    [13152075]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
понятно
ответить тебе попросту нечего
жаль
очень тебя жаль ......
12 сен 12, 14:53    [13152118]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
michael R
ну а если связь не через panertid а через индексы left right ?
как в примере..........
А можно по русски?
12 сен 12, 15:43    [13152580]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
michael R
второй пост в теме
таблица @Т использует индексы для хранения иерархии
она в данном случае и является основным примером
Всё равно не понятно.
Какие нафиг индексы? Может порядок, путь? Вы употребляйте общепринятые термины.

Путь как вы делаете не работает:
1.1
1.10
1.2
10.1
2.1

Его нужно унифицировать по длине.

А костыль ваш, как костыль. Много таких, да и по лучше и быстрее вашего работают. Ищите на форуме.
12 сен 12, 16:00    [13152705]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
Mnior ок
есть таблица которая хранит иерархию в виде алгоритма Сейко
использование правого и левого индекса дерево без рекурсии
это такой термин я его не придумывал
в инете про это куча инфы

работа предок-родитель и получение результата в виде XML не работает
и я даже не знаю как реализовать для алгоритма Сейко

я привёл пример он не ахти какой удачный но он работает
вот и всё...................
12 сен 12, 16:46    [13153101]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
"Nested Set" - ещё ладно, но вот "индексы" не так распространено.
На счёт кучи инфы вы загнули. Дело не в том что знают/не знают. А то что используют или не используют.

Этот алгоритм подход (Nested Set) канул в лету, ибо HierachyID побил всех их.
Использовать "Nested Set" стало бессмысленным, вот и забывается.

Дерево реализовать нормальными средствами (FOR XML) не реально, только костыли в виде или динамического запроса или в виде генерации текста xml (т.е. отгрести кучу багов формата). Об этом уже мусолилось на всех форумах, ищите.

А то что это месиво так долго впитывается уже говорит о многом. Банально форматируйте запросы, не говоря о плохой реализации.
12 сен 12, 17:18    [13153349]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
HierachyID SQL 2008
у меня SQL 2005

в любом случае спасибо
хоть кто то дал вразумительный ответ
12 сен 12, 18:29    [13153786]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
Mnior
Дерево реализовать нормальными средствами (FOR XML) не реально, ...

нуу, не всё так плохо ...

во-первых, "вытащить" parent_id вполне реально (просто рекурсивным проходом, "на лево" :)) , до первого узла выше уровнем, чем исследуемый)
и сделать аналогично задаче выше

а во-вторых (и главное) - выборка с сортировкой по left - УЖЕ выглядит как "граничная таблица" (или как там её) для explicit
( здесь http://www.getinfo.ru/article610.html п.1)
тут даже делать-то ничего и не нужно ! :))

+
Картинка с другого сайта.
TagParentnode!1!path!hidenode!1!idnode!2!idnode!3!idnode!4!idnode!4!idnode!6!id
1NULL11NULLNULLNULLNULLNULL
212NULL2NULLNULLNULLNULL
323NULLNULL5NULLNULLNULL
434NULLNULLNULL10NULLNULL
436NULLNULLNULL11NULLNULL
2110NULL3NULLNULLNULLNULL
3211NULLNULL6NULLNULLNULL
3213NULLNULL7NULLNULLNULL
4314NULLNULLNULL12NULLNULL
4316NULLNULLNULL13NULLNULL
4318NULLNULLNULL14NULLNULL
3221NULLNULL8NULLNULLNULL
2124NULL4NULLNULLNULLNULL
3225NULLNULL9NULLNULLNULL
4326NULLNULLNULL15NULLNULL
4328NULLNULLNULL16NULLNULL

<node id="1">
  <node id="2">
    <node id="5">
      <node id="10" />
      <node id="11" />
    </node>
  </node>
  <node id="3">
    <node id="6" />
    <node id="7">
      <node id="12" />
      <node id="13" />
      <node id="14" />
    </node>
    <node id="8" />
  </node>
  <node id="4">
    <node id="9">
      <node id="15" />
      <node id="16" />
    </node>
  </node>
</node>


зы
конечно, с учётом, что "вложеность не ограничена", простого, "в лоб", решения с FOR XML небудет,
да - или динамика, или "заложится" на макс.возможное кол-во узлов
...но, это, имхо, не самая большая проблема
12 сен 12, 18:35    [13153830]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
fix
qwerty112
зы
да - или динамика, или "заложится" на макс.возможное кол-во уровней
12 сен 12, 18:37    [13153846]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
qwerty112
Mnior
Дерево реализовать нормальными средствами (FOR XML) не реально, ...

конечно, с учётом, что "вложеность не ограничена", простого, "в лоб", решения с FOR XML небудет,
да - или динамика, или "заложится" на макс.возможное кол-во узлов
...но, это, имхо, не самая большая проблема
1. Проблема контроля системы. Не каждая контора может себе это позволить. Конечно что для "Рога и Копыта" фиолетово какой крайний уровень говнокодинга достигнут.
2. Динамику нельзя засунуть в статический инлайн объект (VIEW) соответственно о множественном и гипком использовании можно забить. Не каждый может себе позволить.
10 или 20 объектов в системt - это одно, но когда 10000 и 300000 это совсем другое. Оно растёт нелинейно.
3. Рекурсивный поиск парента - это утонуть в производительности.
Я тут банально по ошибке подставил (вместо dbo.Employees) не то представление - конца не дождался. Сначало Top поставил, а потом тупо-таблицу.
4. XML и текст в виде xml это не одно и тоже.
Фтопку.

А HierarchyID можно эмулировать. Подход надо понять, а не думать что это магия или что-то другое.
qwerty112, повторяю "netsted set" отжил своё. HierarchyID имеет преимуществ только больше, т.к. уместил в себе больше смысла чем "netsted set". HierarchyID заменяет "netsted set" полностью.

;WITH [Source] (ID,Name,Parent,[Order],[Desc]) AS (
	SELECT	 ID,Name,Parent
		,Row_Number()OVER(PARTITION BY Parent ORDER BY ID  ASC)
		,Row_Number()OVER(PARTITION BY Parent ORDER BY ID DESC)
	FROM	<ParentedObject>
), Tree AS (
	SELECT	S.*,HierarchyID::Parse('/'			+ Convert(VarChar,S.[Order]) + '/') AS Hierarchy
	FROM	[Source]	S
	WHERE	Parent IS NULL
UNION ALL
	SELECT	S.*,HierarchyID::Parse(T.Hierarchy.ToString()	+ Convert(VarChar,S.[Order]) + '/')
	FROM	     Tree	T
		JOIN [Source]	S ON S.Parent = T.ID
)	SELECT	Convert(XML,'<Root>' + (
	SELECT	  CASE WHEN [Order] > 1 THEN '</Node>' ELSE '' END
		+ Replace((SELECT Name AS [@Name] FOR XML Path('Node')),'/>','>')
		+ CASE WHEN [Desc]  = 1 THEN '</Node>' ELSE '' END
	FROM	Tree
	ORDER BY Hierarchy
	FOR XML Path(''),Type).value('text()[1]','NVarChar(max)') + '/<Root>')
Просто, понятно, надёжно. Но некрасиво.
12 сен 12, 20:03    [13154313]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
Mnior
qwerty112, повторяю

не надо, мне повторять. сконцентрируйтесь на топикстартёре
я, для начала, ни о чём вас не спрашивал, что бы вы мне просто "отвечаю", и уж тем более "повторяю" ...

и, в целом, к чему вся эта ваша проповедь ?
к слову, - регулярная, - вы что сектант какой-то ?
нуу нету у ТС HierarchyID ! нуу не позволяет его сервер этого ! к чему вы разоряетесь ?

человек пришел спросить, в чём ему "на пробежку выходить - кеды или кроссовки", и тут вы со своим "мерседесом" ... ну, смешно, жж, чесслово...

зы
автор
4. XML и текст в виде xml это не одно и тоже.

расскройте мысль, а то тут "мужики не знают" зрители заинтересовались :)
12 сен 12, 22:10    [13154697]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
qwerty112
не надо, мне повторять. сконцентрируйтесь на топикстартёре
В том то и дело, что ваш пост можно интерпретировать так что мол надо продолжать использовать подход ТС.
А я говорю, что нужно забыть про него. И написать нармально.
qwerty112
я, для начала, ни о чём вас не спрашивал
Дело не в том что не спрашивал, а в том что разговор напоминает 2х глухих старушек.
Вы пишите то что противоречит выше написанному (мне так показалось). Я привык что все посты не взаимоисключающие.
qwerty112
уж тем более "повторяю" ...
Имелось ввиду, что смотреть в сторону "nested sets" и продолжать его тему бессмысленно с любой точки зрения. Не более.
qwerty112
и, в целом, к чему вся эта ваша проповедь ?
Это просто ошибка восприятия. Я никому лично претензии не предъявляю, многое просто повторяется или пишется повторно как итоговая формулировка. В стиле КО. Чтобы убрать разночтения. Естественно что как раз нужно проверять правильность (дотошную точность) этих моих сухих высказываний.
qwerty112
HierarchyID ! нуу не позволяет его сервер этого ! к чему вы разоряетесь ?
Вы будете смеятся.
Повторяю:
Mnior
А HierarchyID можно эмулировать. Подход надо понять, а не думать что это магия или что-то другое.
От того что вы не можете купить BMV это не значит что вы не можете ездить на машине.
Или вы хотите что бы я написал функцию-эмулятор HierarchyID? (на тарелочке с каёмочкой)
А смысл простой. (не могу найти более разжёванное описание)
А если чел не хочет понимать смысл того чем пользуется, то есть не является программистом, то пусть обращается в форум "Работа". Это первое.

А второе, не надо видя HierarcyID сразу закрывать глаза на всё. Мой запрос и запрос ТС совершенно не отличается по смыслу/подходу, но вот посмотреть как то или иное было реализовано - очень полезно.
Не ради HierarcyID я его привёл. Писал же, что сам по себе подход фигня (хотя рассмотреть полезно и интересно).

qwerty112
человек пришел спросить, в чём ему "на пробежку выходить - кеды или кроссовки", и тут вы со своим "мерседесом"
Какой нафиг мерседес. Что вы передираете. Если вы приверженец - смыл кода это последнее, главное первый-нах запостить более не менее косо-криво написанное решение, то извините, но это и есть детский сад.
А вот разжевать по полочкам почему тот или иной кусок кода - уг и не несёт смысла, какие бывают решения и вчём их принципиальные различия - другое дело.

Например вы могли разжевать (в стиле КО) почему HierarcyID (подход, а не тип) есть улучшенный "netsted set" - это было полезно.
qwerty112
автор
4. XML и текст в виде xml это не одно и тоже.
расскройте мысль, а то тут "мужики не знают" зрители заинтересовались :)
Вы хотите сказать что на форуме почти не встречаются "программистов" которые не понимают разницы. Пройдитесь по всем топикам - увидите что мало кто не разделят понятия структуры и представления.
Бинарное представление структуры и его текстрвого представления естественно отличаются.
13 сен 12, 03:06    [13155209]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
Mnior
Бинарное представление структуры и его текстрвого представления естественно отличаются.

т.е. вы считаете ХМЛ-файл - бинарным файлом (НЕ текстовым) ?
я вас правильно понял ?
13 сен 12, 09:18    [13155553]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
мимо
Guest
Для справки: хмл - это язык, а хмл -файл содержит конструкции языка (описание данных, команды по работе с данными).
Насчет бинарного и текстового: в сути всё бинарно. Текст или картинка - это "клиентское" представление бинара, т.е. зависит от приложения, которое обрабатывает бинар. Один и тот же файл, в принципе, может в тестовом редакторе выводить "привет, мир", а в каком-нито пейнте - бабу голую.
Не парьте тс мозги.
13 сен 12, 09:36    [13155627]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
qwerty112
т.е. вы считаете ХМЛ-файл - бинарным файлом (НЕ текстовым) ?
Бинарным?
Файлом?

Боже. Вы банально не хотите понять.
13 сен 12, 09:38    [13155637]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
мимо
Не парьте тс мозги.

..даа, ТС, уже ушел .. "продолжил движение" :))

мимо
Для справки: хмл - это язык, а хмл -файл содержит конструкции языка (описание данных, команды по работе с данными).
Насчет бинарного и текстового: в сути всё бинарно. Текст или картинка - это "клиентское" представление бинара, т.е. зависит от приложения, которое обрабатывает бинар. Один и тот же файл, в принципе, может в тестовом редакторе выводить "привет, мир", а в каком-нито пейнте - бабу голую.

собственно, я готов подписатся под каждой фразой !

меня интересовал только смысл вот этого
автор
4. XML и текст в виде xml это не одно и тоже.

что имел в виду автор, публикуя этот "тезис" ?
13 сен 12, 09:43    [13155664]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
qwerty112
Guest
Mnior
qwerty112
т.е. вы считаете ХМЛ-файл - бинарным файлом (НЕ текстовым) ?
Бинарным?
Файлом?

Боже. Вы банально не хотите понять.

да ! ХМЛ-файл - я считаю файлом !

ХМЛ, как таковой - (как тут выше справедливо заметили) я считаю "языком"

вопрос был прост как мычание
о чём, тут
вот, конкретно тут
автор
4. XML и текст в виде xml это не одно и тоже.

говорите ?

то что "язык" XML и "нечто" "выполненное" на этом языке не одно и тоже ? это ?
..нуу, с такими "открытиями" - вам прямая дорога в "окодемию", не меньше ...
13 сен 12, 09:50    [13155698]     Ответить | Цитировать Сообщить модератору
 Re: SQL netsted set to XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Бинарное представление структуры и его текстрвого представления естественно отличаются.
qwerty112, что имелл ввиду автор под терминами:
"Бинарное представления"?
"Бинарное представления структуры"?
"текстового представления"?
"текстового представления структуры"?

Я не говорю о всяких сериализациях и десериализациях.
Может тогда начинает доходить, что такое структура данных и что значит её представление в каком-то виде (в текстовом), как она представлено в оперативе, и как сериализована в файл.
13 сен 12, 09:56    [13155724]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить