2015-07-20 3 views
3

Я прочитал о Are there any disadvantages to always using nvarchar(MAX) и varchar(max) vs varchar(255) с разных форумов. Теперь, интересно, это ideal/safe Практика для преобразования text данных в формат nvarchar(MAX)? Есть ли разница в производительности? или мне нужно указать размер (как в nvarchar(255)) вместо nvarchar(max)?NVARCHAR (MAX), чтобы заменить тип данных TEXT?

+0

Связанный: http://stackoverflow.com/questions/8512164/is-varcharmax-always-preferable –

+3

Если вы знаете, что размер меньше 4000 (или 8000 для 'varchar()'), то вы должны использовать меньшее значение. Но, если 'text' использовался в старой версии SQL Server, то правильная замена -' max'. –

+0

Я действительно не знаю фактическую длину, так как она переносится из другой базы данных. BTW, он пришел из SQL Server 2000. У меня возникают проблемы при переносе триггеров при попытке создать с использованием типа данных 'text'. Чтобы быть в безопасности, я хочу знать, оказывает ли это негативное влияние, если я использую 'nvarchar (MAX)'. –

ответ

4

Ответ прост: text Тип устарел. Итак, да, вы должны преобразовать тип данных text в varchar(MAX).

https://msdn.microsoft.com/en-AU/library/ms187993.aspx

NTEXT, типы текста, и данные изображения будут удалены в будущей версии в Microsoft SQL Server. Избегайте использования этих типов данных в новых разработках и планируйте изменять приложения, которые в настоящее время используют . Вместо этого используйте nvarchar (max), varchar (max) и varbinary (max).

Кроме того, если вы знаете, что размер вашего text меньше 8000, а затем использовать varchar(nnn) вместо varchar(max). varchar(nnn) более эффективен, чем varchar(max).

Примечание: text тип предназначен для текста, отличного от Юникода, поэтому вместо этого используйте varchar. ntext для текста в формате Юникод, поэтому вместо этого используйте nvarchar.

Смежные вопросы