sql >> Databáze >  >> RDS >> Sqlserver

Schéma nelze zrušit, protože neexistuje nebo nemáte oprávnění. - SQL Server / Výukový program TSQL, část 29

Scénář:

Pracujete pro společnost Mortgage Company jako vývojář SQL Server. Máte tento požadavek na přípravu SQL skriptu pro zrušení schématu. Používáte
Drop Schema SchemeName
příkaz ve vývoji instance SQL Server a dostat se pod chybu.

Nelze zrušit schéma '', protože neexistuje nebo nemáte oprávnění.

Jaké by byly vaše další kroky?

Řešení:

Výše uvedená chyba může mít několik důvodů. Zaprvé, opravdu nemáte povolení schéma vypustit. Ověřili jste si to u DBA a ten potvrdil, že máte všechna oprávnění k provedení této změny. Nyní jste se na to dále podívali a všimli jste si, že existují objekty, jako jsou tabulky, pohledy atd., které používají toto schéma.
Odtud můžete navrhnout dvě řešení.
1) Zrušte všechny objekty Související se schématem a poté zahoďte schéma (Mohou existovat scénáře, kdy někdo používal toto schéma a objekty. Nyní již nikdo nemusí používat schéma a objekty s ním související. Takže budete diskutovat se svým týmem a pokud řeknou, že připravte skript drop pro objekty a schéma. můžete použít okna Detail Exploreru ke generování skriptů pro vypuštění objektů.
2) Chcete si ponechat objekty a přesunout je do jiného schématu. Možná dbo nebo nějaké nové schéma. Po převodu objekty, chcete smazat schéma.
Níže uvedený dotaz lze použít ke generování skriptu pro přenos objektů.
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
 
 
 Zkopírujte vygenerované skripty a poté je spusťte v databázi. Jakmile budete hotovi, nyní můžete schéma zrušit pomocí Drop Schema SchemaName Prohlášení. 
  1. Vraťte typ spouštěče DML na tabulku na serveru SQL

  2. 7 způsobů, jak zkontrolovat verzi Oracle

  3. Jak funguje funkce Power() v PostgreSQL

  4. Rozdělení miliardové tabulky fotbalových dat pomocí kontextu dat