SQL Server Kopieren einer Tabelle in eine andere mit gespeicherter Prozedur

Beim Ändern einer wichtigen Tabelle in der Datenbank wird häufig ein Backup der Tabelle erstellt, indem eine Kopie der ursprünglichen Tabelle mit einem anderen Namen erstellt wird. Die Verwendung einer gespeicherten Prozedur macht die Wiederverwendung dieses Prozesses einfach und bequem.

Daten können unbezahlbar sein. Eine der besten Möglichkeiten zum Schutz besteht darin, die Tabelle zu duplizieren. Gehen wir ein Beispiel durch.

Die Syntax für einen grundlegenden Befehl zum Kopieren von Tabellen lautet wie folgt:

Wählen Sie * In original_tablename_backup From original_tablename;

In unserem Beispiel haben wir eine Tabelle mit dem Namen emp in unserer Datenbank Wir möchten eine Kopie des Originals erstellen emp Tabelle. Diese Abfrage erstellt eine emp_backup Tabelle. Es wird ein Fehler ausgegeben, wenn die emp_backup Tabelle existiert bereits.

Wählen Sie * in emp_backup von emp aus;

Da diese Art von Abfragen mehrmals ausgeführt werden muss, können Sie eine gespeicherte Prozedur verwenden, um eine Kopie der Tabelle zu erstellen. Eine gespeicherte Prozedur ist nichts anderes als gespeichertes SQL, das wiederholt aufgerufen werden kann, um ähnliche Funktionen auszuführen.

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

Diese gespeicherte Prozedur nimmt den ursprünglichen Tabellennamen als Parameter an und erstellt den ursprünglichen Tabellennamen, der die Sicherungstabelle als Kopie der ursprünglichen Tabelle unterstreicht.

Mal sehen, wie diese gespeicherte Prozedur 'BACKUP_TB' mit dem Tabellennamen als Parameter ausgeführt wird.

Angenommen, wir haben die Abt Tabelle in unserer Datenbank, und wir möchten eine Kopie von Abt Tabelle als Name dept_backup.

EXEC BACKUP_TB DEPT;

Wir führen unsere Prozedur 'BACKUP_TB' aus und übergeben dem Tabellennamen einen Parameter. Unsere gespeicherte Prozedur wird erstellt dept_backup Tabelle als Kopie des Originals Abt Tabelle.

Wenn wir einen anderen Schemanamen in unserer Datenbank haben und eine Kopie der Tabelle unter dem AbcLtd-Schema erstellen, müssen wir Klammern verwenden, um das '.' Symbol als Parameter mit unserer Prozedur backup_tb wie folgt:

EXEC BACKUP_TB [AbcLtd.salary];