Tipos de datos VARCHAR de SQL Server

Resumen: en este tutorial, aprenderás a usar el tipo de datos VARCHAR
de SQL Server
para almacenar datos de cadenas no Unicode de longitud variable.
Introducción del tipo de datos VARCHAR de SQL Server
El tipo de datos VARCHAR de SQL Server se utiliza para almacenar datos de cadena no Unicode de longitud variable, aquí puedes revisar el listado de tipos de datos que maneja SQL Server. A continuación, se ilustra la sintaxis:
VARCHAR(n)
En esta sintaxis, n
define la longitud de la cadena que va de 1 a 8000. Si no especificas n
, su valor predeterminado es 1.
Otra forma de declarar una columna VARCHAR
es usar la siguiente sintaxis:
VARCHAR(max)
En esta sintaxis, max
define el tamaño de almacenamiento máximo que es 231-1 bytes (2 GB
).
En general, el tamaño de almacenamiento de un valor VARCHAR
es la longitud real de los datos almacenados más 2 bytes
.
Los sinónimos ISO
de VARCHAR
son CHARVARYING
o CHARACTERVARYING
, por lo tanto, puedes usarlos indistintamente.
Ejemplo de SQL Server VARCHAR
La siguiente declaración crea una nueva tabla que contiene una columna VARCHAR
:
CREATE TABLE test.sql_server_varchar (
val VARCHAR NOT NULL
);
Debido a que no especificamos la longitud de cadena de la columna val, el valor predeterminado es uno.
Para cambiar la longitud de la cadena de la columna val, se debe utilizar la instrucción ALTER TABLE ALTER COLUMN:
ALTER TABLE test.sql_server_varchar
ALTER COLUMN val VARCHAR (17) NOT NULL;
La siguiente declaración inserta una nueva cadena en la columna val de la tabla test.sql_server_varchar
INSERT INTO test.sql_server_varchar (val)
VALUES
('Estrada Web Group');
La declaración funcionó como se esperaba porque el valor de la cadena tiene una longitud igual a la definida en la definición de la columna.
La siguiente declaración intenta insertar una nueva cadena de datos cuya longitud es mayor que la longitud de cadena de la columna:
INSERT INTO test.sql_server_varchar (val)
VALUES
('Estrada Web Group - Ejemplo VARCHAR');
SQL Server regresa un error y finaliza la ejecución:
String or binary data would be truncated.
The statement has been terminated.
Para encontrar la cantidad de caracteres y la cantidad de bytes
de valores almacenados en la columna VARCHAR
, usa las funciones LEN y DATALENGTH
como se muestra en la siguiente consulta:
SELECT
val,
LEN(val) len,
DATALENGTH(val) data_length
FROM
test.sql_server_varchar;
Resultado
val | len | data_length |
---|---|---|
Estrada Web Group | 17 | 17 |
En este tutorial, aprendiste a usar el tipo de datos VARCHAR
de SQL Server para almacenar datos no Unicode de longitud variable en la base de datos.