Как перейти с VARCHAR на TEXT в SQL 2000?

Что я должен учитывать, прежде чем переключать несколько полей из VARCHAR(bignumber) в TEXT?

Помимо производительности, и когда-нибудь в далеком будущем TEXT будет устарел, и помимо того факта, что мне кажется, что мне нужно удалить и заново создать таблицу, чтобы изменить тип данных столбца?

Это для SQL 2000- я не могу сделать VARCHAR (макс.), А VARCHAR(8000) недостаточно велик.

4 ответа

Решение

По крайней мере:

Когда-то в SQL Server 6,5 дней я сохранял некоторые данные в нескольких столбцах varchar(255), потому что varchar(8000) был представлен только в SQL Server 7.

Не уверен, что вы не можете просто изменить тип данных столбца:

ALTER TABLE dbo.YourTable
  ALTER COLUMN YourColumn TEXT

Разве это не работает? (не уверен, что это сработало в 2000.....)

Что нужно помнить: с типом данных TEXT работать намного сложнее, если вам нужно манипулировать строками, поскольку большинство, если не все обычные строковые функции, такие как LEN, SUBSTRING и т. Д., Не работают с ним. Так что в самом T-SQL это главная PIA для работы со столбцами TEXT....

Но кроме этого, у тебя все будет хорошо, я верю.

Многие строковые функции T-SQL не будут работать с текстом - они работают только с char/varchar/nchar/nvarchar.

Вы не можете искать в полях, и многие запросы не будут работать, которые используют функции манипуляции со строками. Лучше разбить поле на два или более. Серьезно, если это единственный способ, потому что обновление до экспресс-версии SQL Server 2008, вероятно, будет лучше, чем придерживаться SQL Server 2000 на данный момент, ИМХО. На самом деле, разделение полей тоже было бы плохо. Забудь про это. Я бы этого не сделал, если бы мой босс не отказался от апгрейда, и тогда мне пришлось бы выбирать, какие поля VARCHAR(MAX) и какие разделять, а какие могут сойти с Text в качестве типа.

Другие вопросы по тегам