SQL хранит строки - PullRequest
       11

SQL хранит строки

1 голос
/ 27 апреля 2009

Мне нужно сохранить строки в базе данных. Каждая строка имеет разный размер от 1 до N. Я думаю, что предел будет около 10000, а может и больше. nvarchar (MAX) будет лучшим способом решить это?

Ответы [ 2 ]

4 голосов
/ 27 апреля 2009

В SQL Server 2005 и более поздних версиях NVARCHAR(MAX) - лучший способ хранить строки длиной более 4000 символов.

Это единственный способ, рекомендуемый для SQL Server 2005 и выше, хотя он по-прежнему поддерживает TEXT столбцы для обратной совместимости.

Обратите внимание, что вы не можете создать индекс для столбца NVARCHAR(MAX).

Чтобы использовать индекс, создайте вычисляемый столбец и используйте его при поиске по индексу. Может служить эффективным грубым фильтром:

CREATE TABLE foo (id INT NOT NULL, mytext NVARCHAR(MAX) NOT NULL, mytext_index AS CAST(mytext AS NVARCHAR(450))

CREATE INDEX ix_foo_mytext (mytext_index)

SELECT  *
FROM    mytext
WHERE   mytext_index LIKE 'L%'
1 голос
/ 27 апреля 2009

nvarchar является правильным, если они являются юникодом (или другими не 7-или 8-битными строками). Если это, например, текст ASCII latin-1 (достаточно во многих случаях), varchar (MAX) сэкономит место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...