Conceptos básicos para crear y modificar tablas

Tras diseñar una base de datos, puede crear las tablas que almacenarán los datos en la base de datos. Normalmente, los datos se almacenan en tablas permanentes; no obstante, también se pueden crear tablas temporales. Las tablas se almacenan en los archivos de base de datos hasta que se eliminan, y están disponibles para cualquier usuario que cuente con los permisos necesarios.

Propiedades de la tabla

Puede definir hasta 1.024 columnas por tabla. Los nombres de las tablas y de las columnas deben seguir las reglas de los identificadores; tienen que ser únicos dentro de una tabla específica, pero puede utilizar el mismo nombre de columna en distintas tablas de la misma base de datos. Para obtener más información, vea Identificadores y Usar identificadores como nombres de objeto. También debe definir un tipo de datos para cada columna. Para obtener más información, vea Asignar un tipo de datos a una columna.

Aunque los nombres de las tablas tienen que ser únicos para cada esquema de una base de datos, puede crear varias tablas con el mismo nombre si especifica distintos esquemas para cada una. Puede crear dos tablas denominadas employees y designar Jonah como esquema de una y Sally como esquema de la otra. Cuando necesite trabajar con una de las tablas employees, puede distinguirlas si especifica el esquema con el nombre de la tabla.

Para crear una tabla

CREATE TABLE (Transact-SQL)

Crear tablas (Visual Database Tools)

Tablas temporales

Las tablas temporales son similares a las permanentes, salvo por el hecho de que las tablas temporales se almacenan en tempdb y se eliminan automáticamente cuando ya no se utilizan.

Hay dos tipos de tablas temporales: locales y globales. Se diferencian entre sí por los nombres, la visibilidad y la disponibilidad. Las tablas temporales locales tienen como primer carácter de sus nombres un solo signo de número (#); solo son visibles para el usuario de la conexión actual y se eliminan cuando el usuario se desconecta de la instancia de SQL Server. Las tablas temporales globales presentan dos signos de número (##) antes del nombre; son visibles para cualquier usuario después de su creación y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server.

Por ejemplo, si crea la tabla denominada employees, la puede utilizar cualquier persona que cuente con los correspondientes permisos de seguridad establecidos para la base de datos hasta que se elimine la tabla. Si una sesión de base de datos crea una tabla temporal local denominada #employees, solo la sesión puede trabajar con la tabla, que se elimina cuando se desconecta la sesión. Si crea la tabla temporal global ##employees, cualquier usuario de la base de datos podrá trabajar con ella. Si ningún otro usuario trabaja con esta tabla después de que la cree, la tabla se eliminará cuando se desconecte. Si otro usuario trabaja con la tabla después de que la cree, SQL Server la elimina cuando se desconecte y todas las demás sesiones ya no la utilicen activamente.

Si una tabla temporal se crea con una restricción con nombre y la tabla temporal se crea dentro del ámbito de una transacción definida por el usuario, solo un usuario a la vez puede ejecutar la instrucción que crea la tabla temporal. Por ejemplo, si un procedimiento almacenado crea una tabla temporal con una restricción de clave principal con nombre, el procedimiento almacenado no puede ser ejecutado a la vez por varios usuarios.

Es posible reemplazar muchos usos de las tablas temporales por variables con el tipo de datos table. Para obtener más información acerca de cómo usar las variables table, vea table (Transact-SQL).

Modificar tablas

Después de crear una tabla, puede cambiar muchas de las opciones que fueron definidas cuando se creó originalmente. Entre ellas figuran las siguientes:

  • Agregar, modificar o eliminar columnas. Por ejemplo, se puede cambiar el nombre, la longitud, el tipo de datos, la precisión, la escala y la nulabilidad de la columna, aunque hay algunas restricciones. Para obtener más información, vea Modificar las propiedades de una columna.

  • Si la tabla tiene particiones, se puede volver a crear las particiones, o bien se pueden agregar o eliminar particiones concretas. Para obtener más información, vea Modificar tablas e índices con particiones y Transferir datos de forma eficaz con cambios de particiones.

  • Agregar o eliminar restricciones PRIMARY KEY y FOREIGN KEY.

  • Agregar o eliminar restricciones UNIQUE y CHECK, así como definiciones DEFAULT y objetos.

  • Agregar o eliminar una columna de identificadores mediante las propiedades IDENTITY o ROWGUIDCOL. Asimismo, es posible agregar o quitar la propiedad ROWGUIDCOL de una columna existente, aunque en una tabla solo puede haber una columna que tenga la propiedad ROWGUIDCOL.

  • Registrar una tabla y las columnas seleccionadas de una tabla para la indización de texto completo.

Para obtener más información acerca de las modificaciones que pueden realizarse en una tabla, vea ALTER TABLE (Transact-SQL).

Asimismo, puede cambiar el nombre o el esquema de una tabla. Cuando lo haga, también deberá cambiar el nombre de la tabla en todos los desencadenadores, procedimientos almacenados, scripts Transact-SQL u otros códigos de programación que utilicen el nombre o esquema anterior de la tabla

Para cambiar el nombre de una tabla

sp_rename (Transact-SQL)

Propiedades de la tabla (Visual Database Tools)

Para cambiar el esquema de una tabla

ALTER SCHEMA (Transact-SQL)