SQLServer之刪除數據庫架構


刪除數據庫架構注意事項

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

可以在 sys.schemas 目錄視圖中查看有關架構的信息。

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

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

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

2、在刪除對象彈出框-》點擊確定。

3、查看刪除結果(不需要刷新架構文件夾)。

使用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
--當前架構所在數據庫名稱。

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

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

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

--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腳本刪除數據庫架構需要刷新數據庫架構文件夾查看刪除結果。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM