ENTEROS
| Tipo | Tamaño | Observaciones |
| Bigint | 8 bytes | Con signo |
| Int | 4 bytes | Con signo |
| Smallint | 2 bytes | Con signo |
| TinyInt | 1 byte | Sin signo |
REALES
| Tipo | Tamaño | Observaciones |
| Real | 4 bytes | Equivale a float(24) |
| Float | 8 bytes | |
| Float (n) | 1<=n <= 24 === real
25<= n <=53 === float |
N=digitos de precision |
| Decimal | 18 digitos de precision | |
| Numeric | 18 digitos de precision | |
| Decimal(p[,s]) | 1<= p <= 38
por defecto p=18 s=0 Si se arranca el sqlServer con el parámetro /pnn => nn= precision |
P= total digitos
S = digitos a la derecha del punto decimal |
CARACTERES
| Char( 1<=tamaño<=8000)
Nchar(1<=tamaño<=4000) = Unicode. 2 bytes por carácter |
Se rellena con blancos hasta completar | |
| Varchar(max) | Un varchar con 2^31-1 bytes | Usa 2 byes para guardar la longitud |
| Varchar( <= 8000)
Nvarchar(<=4000) |
No se rellena con blancos, el tamaño es el máximo, pero si es mas corto solo se ocupa lo que se necesita. |
SET ANSI_PADDING ON/OFF
ON = rellena con blancos (char, nchar) por la derecha.
OFF = Elimina los blancos de la derecha (varchar, nvarchar) , No rellena con blancos en char,nchar
CONSTANTES CARÁCTER ‘PEPE’ (ANSI) , o bien “PEPE”
DINERO
| Money | 8 bytes | Insert con $numero |
| Smallmoney | 4 bytes
desde –214000 a +214000 |
Insert con $numero |
TIEMPO
| Datetime | 8 bytes
4 bytes = dias +/- desde 1900 y 4 bytes milisegundos desde las 00:00 horas |
Almacena fecha y hora
1/1/1753 al 31/12/9999 |
| smalldatetime | 4 bytes
2 bytes para dias, 2 bytes para minutos |
Fecha y hora
1/1/1900 a 6/6/2079 |
Constantes ‘ JUN 30, 1998 9:30 AM’ Formato Texto
SET DATE FORMAT ‘dmy’ à se utiliza 20.10.2001
OTROS
| Bit | 1 bit | No puede ser indice | |||
| Binary(1<=n<=8000) | Tamaño n bytes | Para poner valores usar 0xHexadecimal
Se rellena a 0 los bytes no usados |
|||
| Varbinary(n)
1<=n<= 8000 o Max = 2^31-1 bytes |
Máximo n bytes | Solo se utilizan los bytes que hagan falta. | |||
| Uniqueidentifier | Tipo entero | Defecto ( NEWID() )
Select ROWGUIDCOL from … Create table ..campo uniqueidentifier ROWGUIDCOL DEFAULT NEWID() |
|||
| Timestamp
Mejor usar: Rowversion ß usar esta |
Varbinary(8) si admite nulos.
Binary(8) si no admite nulos |
Valor puesto por SQLServer automáticamente ES UNICO!!
Lo cambia cada vez que añade o actualiza. SELECT @@DBTS para saber el valor actual SELECT ..WHERE TSEQUEAL(CampoTimeStamp, valor viejo) à falla si no coincide |
|||
| TEXT, IMAGE Y NTEXT se pasan a varchar(max) en próxima versiones | Hasta 2.147.843.647 bytes
En bloques de 2K |
Para textos grandes
No se pueden usar en GROUP BY ni en UNION sin ALL. En WHERE y HAVING solo con el LIKE No sirven para indices |
|||
| Sql_variant | Admite cualquier tipo de datos , excepto : text,ntext,image y timestamp | ||||
| SYSNAME | Varchar(30) sin nulos | Para el sistema | |||
CONVERTIR DATOS :
CAST ( $24.5 AS VARCHAR(10) ) -> ESTANDAR SQL-92
CONVERT (nombre del tipo nuevo, datodeltipoviejo)