SQLServer之刪除數據庫架構

刪除數據庫架構注意事項

要刪除的架構不能包含任何對象。 若是架構包含對象,則 DROP 語句將失敗。sql

能夠在 sys.schemas 目錄視圖中查看有關架構的信息。數據庫

要求對架構具備 CONTROL 權限,或者對數據庫具備 ALTER ANY SCHEMA 權限。安全

使用SSMS數據庫管理工具刪除數據庫架構

一、鏈接服務器-》展開數據庫文件夾-》選擇數據庫並展開-》展開安全性文件夾-》展開架構文件夾-》選擇要刪除的數據庫架構右鍵點擊-》選擇刪除。服務器

二、在刪除對象彈出框-》點擊肯定。架構

三、查看刪除結果(不須要刷新架構文件夾)。工具

使用T-SQL腳本刪除數據庫架構

語法

--聲明數據庫引用
use database_name;
go
 
if exists(select * from sys.schemas where name=schema_name)
begin

--刪除數據庫架構註釋
exec sys.sp_dropextendedproperty @name=N'architecturename',@level0type=N'schema',@level0name=N'schema_name';

    --刪除架構下的全部表
    if exists(select * from sys.tables where name=schema_tablename)
		drop table schema_name.schema_tablename;

--刪除數據庫架構
drop schema schema_name; 

end
go

語法解析

--語法解析
--database_name
--當前架構所在數據庫名稱。spa

--schema_name
--架構在數據庫中所使用的名稱。3d

--architecturename
--架構擴展屬性名稱。對象

--schema_tablename
--架構下存在的類型(本例以數據表爲例)。blog

--schema_tablename
--要刪除的架構下的表名

--if exists
--適用範圍:SQL Server(SQL Server 2016 (13.x)到當前版本)。
--只有在架構已存在時纔對其進行有條件地刪除。

示例

--聲明數據庫引用
use [testss];
go
 
if exists(select * from sys.schemas where name='testarchitecture')
begin

--刪除數據庫架構註釋
exec sys.sp_dropextendedproperty @name=N'testcrituer' , @level0type=N'schema',@level0name=N'testarchitecture';

    --刪除架構下的全部表
    if exists(select * from sys.tables where name='schema_table1')
    drop table [testarchitecture].[schema_table1];

--刪除數據庫架構
drop schema testarchitecture; 

end
go

示例結果:使用T-SQL腳本刪除數據庫架構須要刷新數據庫架構文件夾查看刪除結果。

相關文章
相關標籤/搜索