SQL Server Copia una tabella in un'altra utilizzando la stored procedure

Quando si modifica una tabella importante nel database, l'utente esegue spesso il backup della tabella creando una copia della tabella originale con un nome diverso. L'utilizzo di una procedura memorizzata rende questo processo semplice e comodo da riutilizzare.

I dati possono essere inestimabili. Uno dei modi per proteggere al meglio è duplicare il tavolo. Facciamo un esempio.

La sintassi per un comando di base per la copia della tabella sarebbe la seguente:

Seleziona * In original_tablename_backup From original_tablename;

Nel nostro esempio, avremo una tabella chiamata emp nel nostro database. Vogliamo fare una copia dell'originale emp tavolo. Questa query creerà un emp_backup tavolo. Solleverà un errore se il emp_backup la tabella esiste già.

Seleziona * in emp_backup da emp;

Poiché è necessario eseguire questo tipo di query più volte, è possibile utilizzare una stored procedure per creare una copia della tabella. Una stored procedure non è altro che SQL salvato che può essere chiamato ripetutamente per eseguire funzioni simili.

CREATE proc BACKUP_TB @tbname AS varchar (MAX) COME INIZIO SET nocount ON; DECLARE @query AS varchar (MAX) SET @query = 'seleziona * in' [email protected] + '_ backup da' [email protected] + "; EXEC (@query) SET nocount OFF; END

Questa procedura memorizzata prende il nome della tabella originale come parametro e creerà la tabella di backup del carattere di sottolineatura del nome tabella originale come copia della tabella originale.

Vediamo come eseguire questa stored procedure 'BACKUP_TB' con il nome della tabella come parametro.

Supponiamo di avere il Dipartimento tabella nel nostro database, e vogliamo fare una copia di Dipartimento tavolo come nome dept_backup.

EXEC BACKUP_TB DEPT;

Stiamo eseguendo la nostra procedura 'BACKUP_TB' e passando il nome della tabella a un parametro. La nostra stored procedure creerà dept_backup tabella come una copia dell'originale Dipartimento tavolo.

Se abbiamo un nome schema diverso nel nostro database e stiamo facendo una copia della tabella sotto lo schema AbcLtd, allora dobbiamo usare parentesi per analizzare il '.' simbolo come parametro con la nostra procedura backup_tb come segue:

EXEC BACKUP_TB [AbcLtd.salary];