SQL Server Copier une table dans une autre à l'aide d'une procédure stockée

Lors de la modification d'une table importante dans la base de données, l'utilisateur sauvegarde fréquemment la table en créant une copie de la table d'origine sous un nom différent. L'utilisation d'une procédure stockée rend ce processus simple et pratique à réutiliser.

Les données peuvent être inestimables. L'un des moyens de mieux protéger consiste à dupliquer le tableau. Passons en exemple.

La syntaxe d'une commande de copie de table de base serait la suivante:

Sélectionnez * Dans original_tablename_backup De original_tablename;

Dans notre exemple, nous aurons une table nommée emp dans notre base de données. Nous souhaitons faire une copie de l'original emp table. Cette requête créera un emp_backup table. Il y aura une erreur si le emp_backup la table existe déjà.

Sélectionnez * into dans emp_backup de emp;

Comme nous devons effectuer ce type de requêtes plusieurs fois, nous pouvons utiliser une procédure stockée pour créer une copie de la table. Une procédure stockée n'est rien d'autre qu'un SQL sauvegardé pouvant être appelé à plusieurs reprises pour effectuer des tâches similaires.

CREATE proc BACKUP_TB @tbname AS varchar (MAX) AS COMMENCER SET nocount ON; DECLARE @query AS varchar (MAX) SET @query = 'select * into' [email protected] + '_ backup from' [email protected] + "; EXEC (@query) SET nocount OFF; END

Cette procédure stockée prend le nom de la table d'origine en tant que paramètre et crée une table de sauvegarde de soulignement de nom de table d'origine en tant que copie de la table d'origine.

Voyons comment exécuter cette procédure stockée 'BACKUP_TB' avec le nom de la table en paramètre.

Supposons que nous ayons la dept table dans notre base de données, et nous souhaitons faire une copie de dept table comme nom dept_backup.

EXEC BACKUP_TB DEPT;

Nous exécutons notre procédure 'BACKUP_TB' et passons le nom de la table à un paramètre. Notre procédure stockée va créer dept_backup tableau en copie de l'original dept table.

Si nous avons un nom de schéma différent dans notre base de données et que nous réalisons une copie de la table sous le schéma AbcLtd, nous devons utiliser des crochets pour analyser le '.' symbole en tant que paramètre avec notre procédure backup_tb comme suit:

EXEC BACKUP_TB [AbcLtd.salary];