Назад | Перейти на главную страницу

Можно ли изменить ограничение размера ntext в SQL Server 2005?

Можно ли изменить ограничение размера на ntext полей в SQL Server 2005 или необходимо преобразовать поле в varchar(max)?

Ограничение размера полей CLOB / BLOB фиксировано (n / text и image) и составляет 2 147 483 647 байт. Эти типы данных устарели с SQL 2008 и, вероятно, не будут включены в следующую версию.

Их обновленные версии - это типы данных varchar (max), nvarchar (max) и varbinary (max), и они имеют те же ограничения. Обратите внимание, что префикс 'n' в nvarchar и ntext означает, что символы Unicode хранятся в поле, поэтому реальный перевод из ntext должен быть в nvarchar (max).

Надеюсь, это поможет!

Джо

Вы должны преобразовать в varchar (max). Ограничение жестко запрограммировано и не может контролироваться каким-либо другим способом, кроме запроса функции в Microsoft.

Однако я очень сомневаюсь, что это будет разрешено, так как он был помечен для удаления в будущей версии SQL Server в соответствии с MSDN. Вот.

Чтобы добавить к уже сказанному:

  • text / ntext / image не будут удалены, по крайней мере, до SQL11 + 1 (т.е. они определенно все еще присутствуют в следующей основной версии SQL Server - это моя команда отказалась от них)
  • лимит для любого из типов LOB не будет повышен в обозримом будущем
  • ознакомьтесь с функцией FILESTREAM, которая позволяет хранить в файловой системе значения больших объектов размером более 2 ГБ, но с их корнями в базе данных и полностью синхронизированными с транзакциями. Я написал об этом технический документ для MS - см. Технический документ FILESTREAM по SQL Server 2008, опубликованный в MSDN.

Надеюсь это поможет