sql >> Database teknologi >  >> RDS >> Sqlserver

Kan ikke slette skemaet, fordi det ikke eksisterer, eller du ikke har tilladelse. - SQL Server / TSQL vejledning del 29

Scenarie:

Du arbejder for Mortgage Company som SQL Server-udvikler. Du har dette krav til at forberede SQL-script til at droppe skema. Du bruger
Drop Schema SchemeName
sætning under udvikling af SQL Server Instance og komme under fejl.

Kan ikke slippe skemaet '', fordi det ikke eksisterer, eller du ikke har tilladelse.

Hvad ville være dine næste skridt?

Løsning:

Der kan være to årsager til ovenstående fejl. For det første har du virkelig ikke tilladelse til at droppe skemaet. Du tjekkede med DBA, og han bekræftede, at du har alle tilladelser til at tage denne ændring. Nu har du kigget nærmere på det og bemærket, at der er objekter såsom tabeller, visninger osv., der bruger dette skema.
Herfra kan du foreslå to løsninger.
1) Slip alle objekterne Relateret til skema og derefter slip skemaet (Der kunne være scenarier, hvor nogen brugte dette skema og objekter. Nu behøver ingen at bruge skemaet og objekter relateret til det længere. Så du vil diskutere med dit team, og hvis de siger det, forberede drop-scriptet til objekter og skema. kan bruge Object Explorer Detail-vinduer til at generere Drop Objects-scripts.
2) Du vil beholde objekterne og flytte dem til et andet skema. Måske dbo eller et nyt skema. Efter overførsel objekterne, du vil slette skemaet.
Below Query kan bruges til at generere script til at overføre objekter.
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
 
 
 Kopier de genererede scripts og kør derefter i en database. Når det er gjort, er du nu god til at droppe skemaet ved at bruge Drop Schema SchemaName Udmelding. 
  1. JetShowPlan:A Primer

  2. Sådan importeres Room Persistence Library til et Android-projekt

  3. Sådan implementeres en produktionsklar MySQL eller MariaDB Galera Cluster ved hjælp af ClusterControl

  4. Dvale gemmer brugermodel til Postgres