Je werkt als SQL Server-ontwikkelaar bij Life Insurance Company. Ze hebben databasenaam TechBrothersIT en een van de schemanamen die de objecten gebruiken is TB. Ze hebben je de opdracht gegeven om het schema te hernoemen naar LIFE. Hoe zou je dat doen?
Oplossing:
Er is geen eenvoudige manier om de naam van een schema in SQL Server Database te wijzigen. We moeten onderstaande stappen volgen om deze wijziging aan te brengen.Stap 1:Maak een nieuw schema Maak een nieuw schema met de naam LIFE, we kunnen het onderstaande script gebruiken.
Create Schema [LIFE]
Stap 2:Breng de objecten over naar een nieuw schema. We kunnen het onderstaande script gebruiken om een enkel object (tabel, weergave, opgeslagen procedure enz.) naar een nieuw schema over te brengen.
Use Database ALTER SCHEMA NewSchema TRANSFER OldSchema.ObjectName GO
Stel dat ik een tabel in TB Schema heb en dat ik onderstaand script kan gebruiken om naar Life Schema te gaan.
Alter Schema [LIFE] Transfer TB.[test] ;
De bovenstaande query moet worden herhaald voor elk van de objecten om van het TB-schema naar het LIFE-schema over te zetten. We kunnen de onderstaande selectiequery gebruiken om onze Alter-query voor andere objecten in een database te genereren om objecten van het ene schema naar het andere over te dragen.
Declare @SourceSchema VARCHAR(100) Declare @DestinationSchema VARCHAR(100) SET @SourceSchema='TB' SET @DestinationSchema='LIFE' Select 'Alter Schema ['+@DestinationSchema+'] Transfer '
+@SourceSchema+'.['+name+']'
from sys.objects where schema_name(schema_id)=@SourceSchema
Geef de variabelen @SourceSchema en @DestinationSchema op en de query genereert Alter-instructies voor u. Kopieer en voer het uit in uw Query-venster.
Opmerking: Zorg ervoor dat u de wijzigingen in de ontwikkelomgeving test voordat u deze uitvoert in UAT- en productieomgevingen.
Videodemo:objecten overbrengen van één schema naar andere in SQL Server