Me gustaría saber cuál es el tamaño máximo de varchar
en SQL Server 2000. Mientras estaba buscando en Google, se escribieron 8000 caracteres y en algún lugar se escribieron 8060 bytes. ¿Cuál es correcto?Tamaño máximo de varchar (max) en SQL Server 2000
Respuesta
Por lo que recuerdo, es 8000 Chars.
Para Nvarchar es 4000.
Varchar se nvarchar 8000 y 4000. Se
Aquí está la referencia varchar MSDN:
http://msdn.microsoft.com/en-us/library/aa258242(SQL.80).aspx
¿8000 char = 8000 bytes en sqL ???? – Kumar
@Kumar: sí, para VARCHAR, 1 carácter = 1 byte; para NVARCHAR, 1 carácter = 2 bytes –
Es un poco más complicado que eso. La versión corta es que varchar y nvarchar no usan el espacio hasta que realmente coloques datos ahí. –
El tamaño máximo de varchar (max) es grande (2GB o 2Gchars, creo). El valor máximo que puede especificar para n en varchar (n) es 8000, y para nvarchar es 4000.
No varchar (max) en SQL 2000 – MartW
Tiene razón, pero entonces la pregunta es nula. La segunda parte de mi respuesta aún contiene – erikkallen
Una página de datos de SQL Server tiene 8k: 8192 bytes. A partir de esto, una parte se reserva para el encabezado de la página, dejando 8060 bytes la cantidad máxima que una fila puede tener. En una fila, los tipos varbinary (n), varchar (n) y nvarchar (n) no pueden exceder 8000 bytes, lo que significa que varchar (8000) es la longitud máxima de Ascii y nvarchar (4000) es la longitud Unicode máxima (desde Unicode almacena cada personaje en 2 bytes).
La mejor explicación de todos estos detalles proviene del Inside the Storage Engine: Anatomy of a page.
+1 Pequeño tidbit: Unicode no almacena cada carácter en 2 bytes. Eso depende de la codificación. UTF-8 y UTF-16 son codificaciones de longitud variable, UTF-32 es el único de tamaño fijo que conozco. Existen otras codificaciones (UCS-2, UTF-7). Internamente, Microsoft generalmente usa UTF-16, donde el tamaño predeterminado de un personaje es de 2 bytes. Esto es cierto para al menos todos los productos basados en .NET y para SQL Server. – Abel
@abel: SQL Server [usa codificación UCS-2LE] (http://msdn.microsoft.com/en-us/library/ms189617 (v = sql.105) .aspx), que tiene exactamente 2 bytes por carácter. Aunque estoy de acuerdo en que 'Unicode', tal como está redactado en la publicación, no tiene estrictamente 2 bytes por carácter. –
Sí, tienes razón en UCS-2, sigo olvidándome de eso, es uno de mis mayores problemas, ya que solo permite caracteres BMP. Tx por señalar eso :) – Abel
- 1. varchar (max) MS SQL Server 2000, ¿problemas?
- 2. Tamaño máximo de una varchar (max) variable
- 3. VARCHAR (MAX) vs TEXT en SQL Server
- 4. Espacio real máximo en varbinary (max) en SQL Server
- 5. Varchar (255) a Varchar (MAX)
- 6. Convertir entre texto y varchar (MAX) en SQL Server
- 7. SQL Server Tamaño máximo de fila
- 8. T-SQL VARCHAR (MAX) truncado
- 9. Cambiar una columna de datos de varchar (max) a nvarchar (max) en SQL Server 2008
- 10. SQL Server 2008 R2 Varbinary Max Size
- 11. SQL 2008 - varchar (max) vs tipos de datos de texto
- 12. Pivot usando SQL Server 2000
- 13. sql server 2000 try catch
- 14. SQL Server VARCHAR (10)
- 15. SQL Server 2000, sí 2000 hash de contraseña
- 16. sql server 2005 - exportar datos nvarchar (max)
- 17. diferencia entre varchar (500) vs varchar (max) en el servidor sql
- 18. ¿Qué es este operando (* = star-igual) en SQL Server 2000?
- 19. [Mi] Tamaño SQL VARCHAR y terminación nula
- 20. Convertir varchar en datetime en SQL Server
- 21. Usando MAX() en VARCHAR Campo
- 22. Indexar varchar en MS SQL Server 2005
- 23. Convertir varchar a UNIQUEIDENTIFIER en SQL Server
- 24. Columna Varchar (max) no permitida para ser una Clave principal en SQL Server
- 25. ¿Cómo configuro una columna en SQL Server para varchar (max) usando ASP.net EF Codefirst Annotations?
- 26. T-SQL (varchar (max) vs CLR (cadena, SqlString, SqlChars)?
- 27. SQL Server 2000 convertir fecha y hora para llegar hhmm
- 28. ¿Cuál es el equivalente de Varchar (máximo) para DB2?
- 29. SQL Profiler (SQL Server 2000), ¿cómo filtrar solo mis actividades?
- 30. ¿Puedo devolver un varchar (max) de un procedimiento almacenado?
¿8000 char = 8000 bytes en sqL ???? – Kumar
@Kumar: ** ¡sí! ** Para 'varchar' es 1 char = 1 byte, para' nvarchar' es 1 char = 2 byte –