Как перейти с 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 в качестве типа.