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áteDrop 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í.