Member 12677198 Ответов: 3

Как хранить многострочные данные в одном столбце В SQL server?


я хочу хранить многострочные данные в столбце опаления.
у меня есть столбец с именем "ответ" в sql server, и я хочу хранить такие данные.

textline1,
tesxtline2,
и т.д.

(как и на этой странице ответы хранят несколько строк, и после того, как мы сможем получить доступ к ним в той же форме)

Что я уже пробовал:

создать таблицу имя_таблицы
(
имя варчар (20),
ответ варчар(макс.),
)

[no name]

Не делай этого. Спросите своего учителя о дизайне баз данных.

3 Ответов

Рейтинг:
17

OriginalGriff

Простое решение: не надо.
Хотя это достаточно легко сделать - отделить дату запятой, точкой с запятой или другим "специальным" символом - это легко только для человека, сохраняющего данные. Как только вы захотите извлечь его, обработать или (боже упаси) изменить, он быстро превратится в питу для работы. И поскольку вы сохраняете его один раз, но обрабатываете его много, много раз, это гораздо, гораздо лучшая идея, чтобы сделать работу правильно в первую очередь.
Создайте вторую таблицу со столбцом IDENTITY Id, внешним ключом обратно в исходную таблицу и одной записью для данных, которые вы хотите сохранить. затем вы создаете несколько записей в этой таблице и извлекаете их позже, используя соединение с первой таблицей.
Это звучит более сложно, но до тех пор, пока вы не начнете удалять запись из списка, разделенного запятыми, и добавлять новое значение в SQL вместо того, чтобы просто выдавать команды DELETE и INSERT или UPDATE, вы не имеете ни малейшего представления о том, насколько сложной будет ваша схема.


Рейтинг:
1

Mehdi Gholam

Вы можете хранить любую строку в varchar столбец, компонент database engine не различает многострочные символы (\r \n).

Ваш просмотрщик данных отвечает за форматирование.


Рейтинг:
1

Peter Leow

Вы не можете, как сказал Мехди.
Другой способ-поместить их в список, разделенный запятыми, но не делать этого. Прочтите этот отличный ответ от Действительно ли хранение списка с разделителями в столбце базы данных так плохо? - переполнение стека[^].