Sie arbeiten als SQL Server-Entwickler bei einer Lebensversicherungsgesellschaft. Sie haben den Datenbanknamen TechBrothersIT und einer der Schemanamen, die die Objekte verwenden, ist TB. Sie haben Ihnen den Auftrag gegeben, das Schema in LIFE umzubenennen. Wie würden Sie das machen?
Lösung:
Es gibt keine einfache Möglichkeit, ein Schema in der SQL Server-Datenbank umzubenennen. Wir müssen die folgenden Schritte ausführen, um diese Änderung vorzunehmen.Schritt 1:Erstellen Sie ein neues Schema Erstellen Sie ein neues Schema mit dem Namen LIFE, wir können das folgende Skript verwenden.
Create Schema [LIFE]Schritt 2:Übertragen Sie die Objekte in ein neues Schema. Wir können das folgende Skript verwenden, um ein einzelnes Objekt (Tabelle, Ansicht, gespeicherte Prozedur usw.) in ein neues Schema zu übertragen.
Verwenden Sie DatabaseALTER SCHEMA NewSchemaTRANSFER OldSchema.ObjectNameGO
Nehmen wir an, ich habe eine Tabelle in TB-Schema und kann das folgende Skript verwenden, um zu Life-Schema zu wechseln.
Schema ändern [LIFE] Transfer TB.[test];
Die obige Abfrage muss für jedes Objekt wiederholt werden, das vom TB-Schema zum LIFE-Schema übertragen werden soll. Wir können die folgende Auswahlabfrage verwenden, um unsere Alter-Abfrage für andere Objekte in einer Datenbank zu generieren, um Objekte von einem Schema in ein anderes zu übertragen.Declare @SourceSchema VARCHAR(100)Declare @DestinationSchema VARCHAR(100 )SET @SourceSchema='TB'SET @DestinationSchema='LIFE'Select 'Schema ändern ['+@DestinationSchema+'] Transfer '+@SourceSchema+'.['+name+']'aus sys.objectswhere schema_name(schema_id)=@SourceSchemaGeben Sie die Variablenwerte @SourceSchema und @DestinationSchema an, und die Abfrage generiert Alter-Anweisungen für Sie. Kopieren und in Ihrem Abfragefenster ausführen.
Hinweis: Stellen Sie sicher, dass Sie die Änderungen in der Entwicklungsumgebung testen, bevor Sie sie in UAT- und Produktionsumgebungen ausführen.
Videodemo:So übertragen Sie Objekte aus einem Schema zu anderen in SQL Server