У меня возникли проблемы с пониманием того, как определить столбец для моего текста, который имеет правильный размер для моего макс. количество символов. В Oracle я могу создать VARCHAR2(10 CHAR)
, который будет достаточно большим для 10 символов. Размер зависит от кодировки, используемой в базе данных. Но как это сделать в SQL Server? Использую ли я varchar(10)
? nvarchar(10)
? Я хочу иметь возможность хранить всевозможные персонажи (даже китайские).Какой тип данных и размер для текста с n символами в SQL Server?
ответ
Если вы хотите китайских иероглифов, вам нужно использовать nvarchar(n)
и указать длину n
, что имеет смысл.
Это символов, которые вы определяете, и пространство, в котором вы нуждаетесь, в два раза больше (поскольку любой символ Юникода в SQL Server всегда использует 2 байта).
Макс. размер nvarchar(4000)
- или если вам действительно нужно больше, используйте nvarchar(max)
(до 1 миллиард символов).
Я бы порекомендовал НЕ просто использовать nvarchar(max)
для всего, из ленивости о том, какой размер вам действительно нужен! Поскольку это действительно большой столбец, вы не сможете индексировать его для одного.
Если вы используете nvarchar(max)
, это позволит использовать любое количество символов для всех наборов символов. Система оптимизирует хранение.
Ограничения по размеру строки адресуются here. См. Ответ от @marc_s относительно ограничений использования max
.
И это не вызовет никаких проблем, если я создам большое количество столбцов? – John
Вы не сможете ** индексировать ** такой столбец - я бы рекомендовал *** НЕ *** просто использовать 'nvarchar (max)' для всего, из ленивости подумать о том, какой размер вы ** действительно ** нужно - использовать 'nvarchar' для символов Unicode, но выберите ** значимую, полезную ** длину! –
Но вот почему я спрашиваю здесь. Какова была бы значимая длина для 10 китайских символов? Будет ли это nvarchar (10)? – John
- 1. Тип и размер данных SQL Server
- 2. SQL Server Какой размер VLDB
- 3. Тип данных SQL Server для замены XML
- 4. Тип данных T-SQL REAL FLOAT (n) на SQL Server
- 5. Какой размер выбрать для столбца (n) varchar?
- 6. SQL Server: какой тип данных для значений десятичной меры?
- 7. Какой тип данных SQL Server следует использовать для хранения байта []
- 8. [Sql-Server], какой тип данных следует использовать для ввода соли и хеш-значений и какой длины?
- 9. Время хранения - какой тип данных в SQL Server?
- 10. SQl Server 2005 Тип данных
- 11. IsNull и тип данных в SQL Server
- 12. Тип данных широты и долготы SQL Server
- 13. Delphi тип данных для SQL Server last_user_update
- 14. Sql server 2005 тип данных
- 15. Как выбрать тип текста текста в SQL Server быстрее
- 16. Какой тип данных использовать в SQL Server 2008 R2
- 17. SQL Server 2000+, какой тип столбца использовать для хранения капли?
- 18. Какой тип переменной использовать при использовании текста в качестве первичного ключа в базе данных SQL Server
- 19. Тип данных размер переменной в sql
- 20. Sqoop Hive String Тип данных для MS SQL Server Тип
- 21. Тип данных SQL Server XML и QUOTED_IDENTIFIER
- 22. Размер баз данных MySQL и SQL Server
- 23. Тип данных SQL Server day?
- 24. Какой тип данных SQL Server используется для смешанных данных XML и HL7v2?
- 25. Какой тип OData Edm.GeographyPoint относится к базе данных SQL Server
- 26. Размер SQL Server tempDB для хранилища данных
- 27. Тип INT с максимальным размером в базе данных SQL Server
- 28. Недетерминированный тип данных в SQL Server
- 29. Тип данных MongoID для ТЕКСТА
- 30. SQL Server Шестнадцатеричный тип данных
Я действительно не думаю, что это дубликат, потому что я до сих пор не знаю, насколько большой мой тип данных должен быть для нескольких n символов. – John