InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial de Transact SQL
Introducción a Transact SQL
Programación con Transact SQL
Fundamentos de Transact SQL
Tipos de datos en Transact SQL
Variables en Transact SQL
Equivalencia de datos de SQL Server y .NET
Operadores en Transact SQL
Estructuras de control en Transact SQL
Control de errores en Transact SQL
Consultar datos en Transact SQL
Consultas agregadas
Select FOR XML
Operaciones con conjuntos.
Insertar datos en Transact SQL
Actualizar datos en Transact SQL
Borrar datos en Transact SQL
Transacciones en Transact SQL
Procedimientos almacenados en Transact SQL
Funciones en Transact SQL
Funciones integradas de Transact SQL (I)
Triggers en Transact SQL
Cursores en Transact SQL
SQL dinámico en Transact SQL
También puedes ver ...
Simular TRUNC en SQL Server
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008
SET IDENTITY_INSERT ON y LinqToSQL
SQL Server 2008
LinQ To SQL - Un ejemplo sencillo
Formatear números en SQL Server
Leer un campo XML de SQL Server 2005 con C#
SQL dinámico en Transact SQL
Cursores en Transact SQL
Triggers en Transact SQL


Tipos de datos en Transact SQL

   Cuando definimos una tabla, variable o constante debemos asignar un tipo de dato que indica los posibles valores. El tipo de datos define el formato de almacenamiento, espacio que de disco-memoria que va a ocupar un campo o variable, restricciones y rango de valores validos.

    Transact SQL proporciona una variedad predefinida de tipos de datos . Casi todos los tipos de datos manejados por Transact SQL son similares a los soportados por SQL.

Tipos de datos numéricos.

    SQL Server dispone de varios tipos de datos númericos. Cuanto mayor sea el número que puedan almacenar mayor será en consecuencia el espacio utilizado para almacenarlo. Como regla general se recomienda usar el tipo de dato mínimo posible. Todos los dato numéricos admiten el valor NULL.

Bit. Una columna o variable de tipo bit puede almacenar el rango de valores de  1 a 0.

Tinyint. Una columna o variable de tipo tinyint puede almacenar el rango de valores de 0 a 255.

SmallInt. Una columna o variable de tipo smallint puede almacenar el rango de valores -32768 a 32767.

Int. Una columna o variable de tipo int puede almacenar el rango de valores -231 a 231-1 .

BigInt. Una columna o variable de tipo bigint puede almacenar el rango de valores -263 a 263-1 .

Decimal(p,s). Una columna de tipo decimal puede almacenar datos númericos decimales sin redondear. Donde p es la precision (número total del dígitos) y s la escala (número de valores decimales)

Float. Una columna de datos float puede almacenar el rango de valores -1,79x-10308 a 1,79x-10308, , si la definimos con el valor máxmo de precisión. La precisión puede variar entre 1 y 53.

Real. Sinónimo de float(24). Puede almacenar el rango de valores -3,4x-1038 a 3,4x-1038, 

Money. Almacena valores númericos monetarios de -263  a 263-1, con una precisión de hasta diexz milesimas de la unidad monetaria. 

SmallMoney. Almacena valores númericos monetarios de -214.748,3647 a 214.748,3647, con una precisión de hasta diez milesimas de la unidad monetaria.

    Todos los tipos de datos enteros pueden marcarse con la propiedad identity para hacerlos autonuméricos.


DECLARE @bit bit,
@tinyint tinyint,
@smallint smallint,
@int int,
@bigint bigint,
@decimal decimal(10,3), -- 10 digitos, 7 enteros y
-- 3 decimales
@real real,
@double float
(53),
@money
money
set @bit = 1
print
@bit
set @tinyint = 255
print @tinyint
set @smallint = 32767
print @smallint
set @int = 642325
print @int
set @decimal = 56565.234  -- Punto como separador decimal
print @decimal
set @money = 12.34
print @money

Tipos de datos de caracter.

Char(n). Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se almacena 'A    ', ocupando los cinco bytes.

Varchar(n).Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo varchar, unicamente se utilizan los caracteres necesarios,Por ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un byte bytes.

Varchar(max). Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes.

Nchar(n).Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idomas.

Nvarchar(n).Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idomas.

Nvarchar(max).Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes.  

Tipos de datos de fecha.

Datetime. Almacena fechas con una precision de milisegundo. Debe usarse para fechas muy especificas.

SmallDatetime. Almacena fechas con una precision de minuto, por lo que ocupa la mitad de espacio de que el tipo datetime, para tablas que puedan llegar a tener muchos datos es un factor a tener muy en cuenta.

TimeStamp.Se utiliza para marcar un registro con la fecha de inserción - actualización. El tipo timestamp se actualiza automáticamente cada vez que insertamos o modificamos los datos.

Tipos de datos binarios.

Binary. Se utiliza para almacenar datos binarios de longitud fija, con una longitud máxima de 8000 bytes.

Varbinary. Se utiliza para almacenar datos binarios de longitud variable, con una longitud máxima de 8000 bytes..Es muy similar a binary, salvo que varbinary utiliza menos espacio en disco.

Varbinary(max).Igual que  varbinary, pero puede almacenar 231-1 bytes

Tipo de datos XML.

XML.Una de las grandes mejoras que incorpora SQL Server 2005 es el soporte nativo para XML. Como podemos deducir, este tipo de datos se utiliza para almacenar XML.


 DECLARE @myxml XML
 
 set @myxml = (SELECT @@SERVERNAME NOMBRE FOR XML RAW, TYPE)
 
 print cast(@myxml as varchar(max))

Obtendremos la siguiente salida:    <row nombre="SVR01"/>

Otros tipos de datos.

UniqueIdentifier. Se utiliza para identificadores únicos. Para generar identificadores únicos debemos utilizar la función NEWID().


 DECLARE @myuniqueid UNIQUEIDENTIFIER
 
 set @myuniqueid = NEWID()
 
 print cast(@myuniqueid as varchar(36))

Obtendremos la siguiente salida: 46141D79-102C-4C29-A620-792EA0208637

Sql_Variant.Permite almacenar valores de diferentes tipos de datos. No puede almacena varchar(max), xml, timestamp y tipos de datos definidos por el usuario. 

Tipos de datos personalizados.

    Transact SQL permite la creación de tipos de datos personalizados, a trevés de la instrucción CREATE TYPE. Personalmente, desaconsejo el uso de tipos de datos personalizados.


CREATE TYPE MD5 FROM CHAR(32) NULL
	GO
	DECLARE @miMD5 MD5
set @miMD5 = '0000000000000000000000000000000A'
print @miMD5

 


Inicio | Tutorial de Transact SQL Fundamentos de Transact SQLTutorial de Transact SQLVariables en Transact SQL Versión para imprimir Foros de consulta

 
tipos de datos excel por szeiilmij
Respuesta recibida el [10/03/2008 10:42:40]
graijxias po axudarmij n mij tariia poq nno loj ijncntraba thaankiu verij muxs

 
Oye una pregunta lo que pasa e... por Heysol Racing
Respuesta recibida el [13/03/2008 01:21:00]
Oye una pregunta lo que pasa es que quise declarar unas variables de tipo XML pero no me deja el SQL Server 2005 que me recomiendas hacer porque no me reconoce el tipo de dato XML que hago ?? Gracias esta re gueno tu sitio

 
Problema al imprimir por jcortes
Respuesta recibida el [24/03/2008 07:21:46]
Una pregunta al consultar el tutorial y ejecutar el codigo de arriba que imprime las variables de tipo numerico, me marca un error y dice que solo puedo imprimir variables de tipo caractyer el error es el siguiente: Message passed to PRINT must be of type CHAR or VARCHAR.
como lo soluciono o no se puede imprimir variables numericas?

Gracias

 
Hola, se soluciona asi: set... por Jorge 3°
Respuesta recibida el [22/12/2008 06:08:56]
Hola, se soluciona asi:

set @money = 12.34
print cast(@money as varchar) -- Ojo aqui se hace la conversion de datos, para poder imprimir

es necesaria hacer esta conversion.

 
Job por Donnie Leonardo
Respuesta recibida el [21/02/2009 07:43:07]
tengo un problema tengo un job que me hace un backup de 6 bases de datos y siempre me falla en el ultimo STEP me dice lo siguiente: The job failed.  The Job was invoked by User sa.  The last step to run was step 6 (EasyBankGrafs).  The job was requested to start at step 1 (EasyBank). y no se como lograr que no me falle?

 
Duda con indentificador unico por GUIOOS
Respuesta recibida el [19/04/2009 01:54:14]
Primero que nada FELICIDADES Y GRACIAS por el tutorial hasta aquí es de lo mejor concreto, sin paja de mucha utiliad. Enhorabuena. Felicidades...

Las dudas son:
¿cuándo generas el identificador único esta en formato hexadecimal o cada caracter esta en ASCII?
Imagino que el servidor al ejecutar los genera automaticamente...¿ el (36) es el valor máximo en bytes que puede tomar nuestro identificador?
¿Por que debemos usar cast despues de print /* no como para imprimir los valores de los tipos de datos anteriores*/?

Gracias de antemano, totalmente nuevo en T-SQL con nociones básicas de SQL.


 
Agrupando fechas por Freddy
Respuesta recibida el [24/06/2009 12:53:10]
Hola a todos, antes que nada me agrada mucho que existan este tipo de foros porque sirven de mucha ayuda muchas felicidades y en hora buena.

Pasando a otro orden de ideas, resulta que tengo una consulta en la cual me muestra Facturas y Notas de Credito, pero ambas utilizan un mismo campo de fechas, pero tambien con fechas diferentes, como puedo hacer para que las notas de credito tomen la fecha del documento Factura.

 
Programacion en ado.net por Nuevo
Respuesta recibida el [30/06/2009 06:42:33]
hola a todos, la verdad es q yo soy nuevo en esto de la programacion y me gustaria saber si ustedes me pueden recomendar al sitio en el que pueda ver informacion de stored procedures con visual basic 

 
Duda con los tipos por Lucius
Respuesta recibida el [20/07/2009 10:12:41]
Ala messi y ala madrid

 
que son los tipos de datos tip... por Anónimo
Respuesta recibida el [17/09/2009 08:05:29]
que son los tipos de datos tipo numerico







 
grande masestro por peter albiña espinoza
Respuesta recibida el [29/09/2009 12:45:32]
Pedro Herrarte Sánchez, eres unico maestro sigo tus pasos espero algun dia ser como tu...


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial de Transact SQL Fundamentos de Transact SQLTutorial de Transact SQLVariables en Transact SQL Versión para imprimir

Tipos de datos en Transact SQL
Autor: Pedro Herrarte Sánchez
Visitas: 64187 Fecha de publicación: 24/05/2007
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 106 | Comentarios: 3 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 802 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 756 | Comentarios: 3 | Archivo: Articulos
Visitas: 3167 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14541 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1489 | Comentarios: 3 | Archivo: Articulos
Visitas: 695 | Comentarios: 2 | Archivo: Articulos
Visitas: 369 | Comentarios: 0 | Archivo: Articulos
Visitas: 2028 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
certuficado de afiliacion a porvenir por ede ... [Actualidad] 5 05/02/2010
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 136 26/01/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 59 10/02/2010
necesito certificado de afiliacíon a pensiones por jelo ... [Actualidad] 0 12/03/2010
Certificado de afiliacion AFP (PENSIONES) Horizonte por Sandris ... [Actualidad] 70 30/01/2010
certificado de penciones porvenir por caro ... [Actualidad] 1 12/03/2010
vendedora por caro ... [Actualidad] 2 12/03/2010
certificado de afiliacion por jeison ... [Actualidad] 0 12/03/2010
CERTIFICADO DE AFILIACION A PROTECCION por LEIDYS ... [Actualidad] 21 11/02/2010
certificado de afiliación de pensiones y cesantias por secre ... [Actualidad] 116 28/01/2010
urgente porfabor requiero el certificado que pertenesco a esta entidad en penciones para poder trabajar por wilmer ... [Access] 0 12/03/2010
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 124 12/01/2010

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
16/10/2006 Delegados y eventos    forma parte de...Tutorial C#
24/05/2006 Cursores Implicitos en PL/SQL    forma parte de...Tutorial PL/SQL
10/06/2007 Multiples escritorios en Windows XP
25/08/2007 Variables en Transact SQL    forma parte de...Tutorial de Transact SQL
09/01/2009 Cómo arreglar un portatil que no arranca
27/02/2007 ¿Permite Windows Vista reproducir peliculas descargadas o "Piratas"? SI, si lo permite
22/10/2005 Actualización de datos. UPDATE    forma parte de...Tutorial SQL
05/08/2007 Como ver peliculas descargadas en Windows Vista
08/09/2007 Funciones en Transact SQL    forma parte de...Tutorial de Transact SQL
22/10/2005 Vistas    forma parte de...Tutorial SQL

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]