Tipos de datos (motor de base de datos)

Los objetos que contienen datos tienen asociado un tipo de datos que define la clase de datos, por ejemplo, carácter, entero o binario, que puede contener el objeto. Los siguientes objetos tienen tipos de datos:

  • Columnas de tablas y vistas.

  • Parámetros de procedimientos almacenados.

  • Variables.

  • Funciones de Transact-SQL que devuelven uno o más valores de datos de un tipo de datos específico.

  • Procedimientos almacenados que devuelven un código, que siempre es de tipo integer.

Al asignar un tipo de datos a un objeto se definen cuatro atributos del objeto:

  • El tipo de datos que contiene el objeto.

  • La longitud o tamaño del valor almacenado.

  • La precisión del número (sólo tipos de datos numéricos).

  • La escala del número (sólo tipos de datos numéricos).

Para obtener más información sobre la precisión del tipo de datos, la escala y la longitud, vea Precisión, escala y longitud (Transact-SQL).

Transact-SQL tiene estos tipos de datos de sistema.

Todos los datos almacenados en MicrosoftSQL Server deben ser compatibles con uno de estos tipos de datos básicos. El tipo de datos cursor es el único tipo de datos de sistema que no se puede asignar a una columna de una tabla. Sólo se puede utilizar con variables y parámetros de procedimientos almacenados.

Varios tipos de datos básicos tienen sinónimos (por ejemplo rowversion es un sinónimo de timestamp y national character varying es un sinónimo de nvarchar). Para obtener más información sobre el comportamiento de los sinónimos, vea Sinónimos de tipos de datos (Transact-SQL).

También pueden crearse dos tipos de datos definidos por el usuario:

  • Los tipos de datos de alias se crean a partir de tipos de datos básicos. Proporcionan un mecanismo para aplicar un nombre a un tipo de datos que sea más descriptivo que los tipos de valores que va a contener el objeto. Esto puede facilitar al administrador de la base de datos o al programador entender el uso que se piensa de cualquier objeto que se defina con el tipo de datos. Por ejemplo:

    -- Create a birthday datetype that allows nulls.
    CREATE TYPE birthday
    FROM datetime NULL
    GO
    -- Create a table using the new data type.
    CREATE TABLE employee (emp_id char(5), emp_first_name char(30), emp_last_name char(40), emp_birthday birthday)
    

    Para obtener más información, vea Trabajar con tipos de datos de alias.

  • Los tipos de datos definidos por el usuario CLR se basan en tipos de datos creados en código administrado y cargados en un ensambladoSQL Server Para obtener más información, vea Trabajar con tipos definidos por el usuario para CLR.