sql >> Database >  >> RDS >> Sqlserver

Kan het schema niet verwijderen, omdat het niet bestaat of omdat je geen toestemming hebt. - SQL Server / TSQL-zelfstudie, deel 29

Scenario:

Je werkt bij Hypotheek Bedrijf als SQL Server ontwikkelaar. U hebt deze vereiste om het SQL-script voor te bereiden om het schema te laten vallen. U gebruikt
Drop Schema Scheme Name
statement in ontwikkeling SQL Server Instance en krijg onderstaande fout.

Kan het schema niet verwijderen '', omdat het niet bestaat of je geen toestemming hebt.

Wat zouden uw volgende stappen zijn?

Oplossing:

Er kunnen een aantal redenen zijn voor de bovenstaande fout. Ten eerste heb je echt geen toestemming om het schema te laten vallen. Je hebt het nagevraagd bij DBA en hij heeft bevestigd dat je alle rechten hebt om deze wijziging door te voeren. Nu heb je er verder naar gekeken en opgemerkt dat er objecten zijn zoals tabellen, views etc. die dit schema gebruiken.
Vanaf hier kun je twee oplossingen voorstellen.
1) Laat alle objecten vallen Gerelateerd aan schema en vervolgens het schema neerzetten (Er kunnen scenario's zijn waarin iemand dit schema en objecten gebruikte. Nu hoeft niemand het schema en de bijbehorende objecten meer te gebruiken. Dus u zult met uw team bespreken en als zij dat zeggen, bereidt u het dropscript voor objecten en schema voor. U kan Object Explorer Detail-vensters gebruiken om Drop Objects-scripts te genereren.
2) U wilt de objecten behouden en ze naar een ander schema verplaatsen. Misschien dbo of een nieuw schema. Na overzetten de objecten, wilt u het schema verwijderen.
Hieronder Query kan worden gebruikt om een ​​script te genereren voor het overbrengen van objecten.
Declare @SourceSchema VARCHAR(100)
Declare @DestinationSchema VARCHAR(100)
SET @SourceSchema='TB'
SET @DestinationSchema='dbo'
Select 'Alter Schema ['+@DestinationSchema+'] Transfer '+@SourceSchema+'.['+name+']' 
from sys.objects
where schema_name(schema_id)=@SourceSchema
 
 
 Kopieer de gegenereerde scripts en voer ze vervolgens uit in een database. Als u klaar bent, bent u nu klaar om het schema te verwijderen met behulp van Drop Schema SchemaName Uitspraak. 
  1. Databasebeveiliging in Oracle

  2. Hoe verwerkt MySQL ORDER BY en LIMIT in een query?

  3. Dubbele rijen in een primaire sleuteltabel.

  4. Hoe kan ik de relevantie van MySQL-zoekopdrachten in volledige tekst manipuleren om het ene veld 'waardevoller' te maken dan het andere?