Scenario:
Du arbetar för Mortgage Company som SQL Server-utvecklare. Du har detta krav för att förbereda SQL-skript för att släppa schema. Du använderDrop Schema SchemeName
påstående i utvecklingen SQL Server Instance och komma under felet.
Kan inte släppa schemat '', eftersom det inte finns eller att du inte har behörighet.
Vilka blir dina nästa steg?
Lösning:
Det kan finnas flera orsaker till ovanstående fel. För det första har du verkligen inte tillåtelse att släppa schemat. Du kollade med DBA och han bekräftade att du har alla behörigheter att ta denna ändring. Nu tittade du närmare på det och märkte att det finns objekt som tabeller, vyer etc. som använder detta schema.Härifrån kan du föreslå två lösningar.
1) Släpp alla objekt Relaterat till Schema och släpp sedan Schemat (Det kan finnas scenarier där någon använde det här schemat och objekten. Nu behöver ingen längre använda schemat och objekt som är relaterade till det. Så du kommer att diskutera med ditt team och om de säger det förbereda släppskriptet för objekt och schema. kan använda objektutforskarens detaljfönster för att generera Drop Objects-skript.
2) Du vill behålla objekten och flytta dem till ett annat schema. Kanske dbo eller något nytt schema. Efter överföring objekten vill du ta bort schemat.
Nedan Fråga kan användas för att generera skript för att överföra 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
Kopiera de genererade skripten och kör sedan i en databas. När du är klar kan du nu släppa schemat genom att använda Drop Schema SchemaName Påstående.