SQL Server copia una tabla a otra mediante un procedimiento almacenado

Al modificar una tabla importante en la base de datos, el usuario realiza copias de seguridad de la tabla con frecuencia haciendo una copia de la tabla original con un nombre diferente. El uso de un procedimiento almacenado hace que este proceso sea sencillo y conveniente de reutilizar.

Los datos pueden ser invaluables. Una de las formas de proteger mejor es duplicar la tabla. Veamos un ejemplo.

La sintaxis de un comando de copia de tabla básica sería la siguiente:

Seleccione * In original_tablename_backup From original_tablename;

En nuestro ejemplo, tendremos una tabla llamada emp en nuestra base de datos Deseamos hacer una copia del original. emp mesa. Esta consulta creará un emp_backup mesa. Se producirá un error si el emp_backup La tabla ya existe.

Seleccione * en emp_backup desde emp;

Como necesitamos realizar este tipo de consultas muchas veces, podemos usar un procedimiento almacenado para hacer una copia de la tabla. Un procedimiento almacenado no es más que un SQL guardado al que se puede llamar repetidamente para realizar funciones similares.

CREAR proc BACKUP_TB @tbname AS varchar (MAX) COMO COMENZAR AJUSTAR nocount ON; DECLARAR @query AS varchar (MAX) SET @query = 'select * en' [correo electrónico protegido] + '_ copia de seguridad de' [correo electrónico protegido] + "; EXEC (@query) SET nocount OFF; END

Este procedimiento almacenado toma el nombre de la tabla original como parámetro y creará el nombre de la tabla original subrayando la tabla de copia de seguridad como una copia de la tabla original.

Veamos cómo ejecutar este procedimiento almacenado 'BACKUP_TB' con el nombre de la tabla como parámetro.

Supongamos que tenemos la departamento Tabla en nuestra base de datos, y deseamos hacer copia de departamento tabla como nombre dept_backup.

EXEC BACKUP_TB DEPT;

Estamos ejecutando nuestro procedimiento 'BACKUP_TB' y pasando el nombre de la tabla a un parámetro. Nuestro procedimiento almacenado creará dept_backup mesa como copia del original departamento mesa.

Si tenemos un nombre de esquema diferente en nuestra base de datos y estamos haciendo una copia de la tabla bajo el esquema AbcLtd, entonces necesitamos usar corchetes para analizar el '.' símbolo como un parámetro con nuestro procedimiento de backup_tb como el siguiente:

EXEC BACKUP_TB [AbcLtd.salary];