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

Откуда:
Сообщений: 111
добрый день !
возник следующий вопрос: нужно создать таблицу в виде набора строк, где каждая строка имеет некие свои независимые от других строк атрибуты. Перечислять все возможные атрибуты в виде столбцов мне кажется неправильным, т.к. у каждой строки будет заполнена только малая часть столбцов. Хотелось бы создать поле xml в котором для каждой строки будут указаны только необходимые ей атрибуты в виде элементов xml документа.
Вопрос в том, как это сделать. Нужен пример записи в xml поле таблицы числовых и текстовых значений в виде элементов xml.
28 апр 16, 10:11    [19115943]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
a2d
возник следующий вопрос: нужно создать таблицу в виде набора строк, где каждая строка имеет некие свои независимые от других строк атрибуты. Перечислять все возможные атрибуты в виде столбцов мне кажется неправильным, т.к. у каждой строки будет заполнена только малая часть столбцов. Хотелось бы создать поле xml в котором для каждой строки будут указаны только необходимые ей атрибуты в виде элементов xml документа.
Вопрос в том, как это сделать.

Сделать что ? нужный xml и записать его в поле ?
28 апр 16, 10:15    [19115959]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
a2d
Member

Откуда:
Сообщений: 111
Glory
Сделать что ? нужный xml и записать его в поле ?

именно
28 апр 16, 10:20    [19115981]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Можно actual & expected result... в студию. Что Вы хотите примерно понятно, но деталей явно не хватает
28 апр 16, 10:20    [19115987]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
a2d
Glory
Сделать что ? нужный xml и записать его в поле ?

именно

Да так же, как и в любое другое поле - insert или update
28 апр 16, 10:22    [19115999]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
iljy
Member

Откуда:
Сообщений: 8711
a2d,

вообще для такой конструкции есть стандартное решение, называется SPARSE поля.
28 апр 16, 10:37    [19116064]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
a2d
Member

Откуда:
Сообщений: 111
AlanDenton
Можно actual & expected result... в студию. Что Вы хотите примерно понятно, но деталей явно не хватает


данные следующего вида:
строка атрибут_1 атрибут_2 атрибут_3
string_1 length = 10 width = 20 height = 30
string_2 color = 'red'
string_3 street = 'Lenina' house = 5


хотелось бы хранить в таблице
create table tbl (string varchar(10), attribute xml);
28 апр 16, 10:41    [19116094]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
a2d
данные следующего вида:
строка атрибут_1 атрибут_2 атрибут_3
string_1 length = 10 width = 20 height = 30
string_2 color = 'red'
string_3 street = 'Lenina' house = 5

И где они находятся то эти данные ? В воздухе висят ?
28 апр 16, 10:42    [19116098]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
a2d
Member

Откуда:
Сообщений: 111
Glory
И где они находятся то эти данные ? В воздухе висят ?


сейчас они находятся на бумажке, хотелось бы создать таблицу для их хранения и заполнить её.
28 апр 16, 10:44    [19116103]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
a2d
сейчас они находятся на бумажке,

Т.е. вы серверу на вход бумажку будете подавать ?

a2d
хотелось бы создать таблицу для их хранения и заполнить её.

Сервер не может заполнить таблицу содержимым бумажки.
Сервер что-то должне получить в синтакисе TSQL.
28 апр 16, 10:46    [19116117]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
a2d
Member

Откуда:
Сообщений: 111
Glory
Т.е. вы серверу на вход бумажку будете подавать ?

возможно я ошибаюсь, но изначально любая созданная база - пустая и заполняют её данными именно пользователи, вводя их (данные) с бумажки
28 апр 16, 10:50    [19116141]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
a2d
вводя их (данные) с бумажки

Прямо вот так в окне запроса и будет вводить string_1 length = 10 width = 20 height = 30 ?
А потом что ?
28 апр 16, 10:58    [19116204]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
a2d
хотелось бы хранить в таблице
create table tbl (string varchar(10), attribute xml);
Так храните. Вам уже сказали, что данные в таблице вставляются или изменяются командами insert или update. В чём вопрос-то?
28 апр 16, 12:22    [19116824]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
a2d
Member

Откуда:
Сообщений: 111
alexeyvg
Так храните. Вам уже сказали, что данные в таблице вставляются или изменяются командами insert или update. В чём вопрос-то?

Я не знаю как создать xml документ, пока у меня есть только преременные:

declare @length int = 10, @width int = 20, @height = 30;

Как мне создать переменную xml с соответствующими элементами и значениями, чтобы потом её insert или update ?
28 апр 16, 13:17    [19117179]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
a2d
добрый день !
возник следующий вопрос: нужно создать таблицу в виде набора строк, где каждая строка имеет некие свои независимые от других строк атрибуты. Перечислять все возможные атрибуты в виде столбцов мне кажется неправильным, т.к. у каждой строки будет заполнена только малая часть столбцов. Хотелось бы создать поле xml в котором для каждой строки будут указаны только необходимые ей атрибуты в виде элементов xml документа.
Вопрос в том, как это сделать. Нужен пример записи в xml поле таблицы числовых и текстовых значений в виде элементов xml.

может стоит хранить атрибуты таблицы в отдельной таблице?
или хранить прям сериализованный объект, если он есть.
xml же надо генерить, потом парсить при выборке, а это время
28 апр 16, 13:18    [19117192]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
iljy
Member

Откуда:
Сообщений: 8711
a2d
Как мне создать переменную xml с соответствующими элементами и значениями, чтобы потом её insert или update ?

Это вопрос ну нифига не к серверу. Воспользуйтесь любой из известны библиотек работы с XML на клиенте и передавайте серверу готовые данные. Но я бы все-таки рассмотрел вариант использования SPARSE COLUMNS.
28 апр 16, 13:42    [19117342]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
a2d
alexeyvg
Так храните. Вам уже сказали, что данные в таблице вставляются или изменяются командами insert или update. В чём вопрос-то?

Я не знаю как создать xml документ, пока у меня есть только преременные:

declare @length int = 10, @width int = 20, @height = 30;


Как мне создать переменную xml с соответствующими элементами и значениями, чтобы потом её insert или update ?
Как составить строку нужного вида из переменных? Вы шутите? Конкатенацией из кусочков.
28 апр 16, 14:34    [19117642]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
a2d
Как мне создать переменную xml с соответствующими элементами и значениями, чтобы потом её insert или update ?

xml - это строка.
Вы не знаете, как конкатенировать несколько строк в одну ?
Или как int преобразовать в строку ?
28 апр 16, 14:37    [19117659]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
a2d
Как мне создать переменную xml с соответствующими элементами и значениями, чтобы потом её insert или update ?
declare @t table (string varchar(10), attributes xml);

declare @length int = 10, @width int = 20, @height int = 30;

insert into @t
 (string, attributes)
values
 ('test', (select @length as [@length], @width as [@width], @height as [@height] for xml path('attributes'), type));

select * from @t;

Только хорошо подумайте, как будете менять значения атрибутов или использовать их в условиях поиска.
Вам уже два раза писали про sparse columns. Хотя бы почитайте что это.
28 апр 16, 14:59    [19117834]     Ответить | Цитировать Сообщить модератору
 Re: записать атрибуты в xml  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
a2d
AlanDenton
Можно actual & expected result... в студию. Что Вы хотите примерно понятно, но деталей явно не хватает


данные следующего вида:
строка атрибут_1 атрибут_2 атрибут_3
string_1 length = 10 width = 20 height = 30
string_2 color = 'red'
string_3 street = 'Lenina' house = 5


хотелось бы хранить в таблице
create table tbl (string varchar(10), attribute xml);


Встречный вопрос: а зачем заниматься этой мутатой в БД? БД с записями работает, а всякие движки, которые крутят XML-ли вокруг всего чего можно, есть например в .NET.
28 апр 16, 15:14    [19117950]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить