SQLServer之删除数据库架构
程序员文章站
2022-12-24 15:13:52
删除数据库架构注意事项 要删除的架构不能包含任何对象。 如果架构包含对象,则 DROP 语句将失败。 可以在 sys.schemas 目录视图中查看有关架构的信息。 要求对架构具有 CONTROL 权限,或者对数据库具有 ALTER ANY SCHEMA 权限。 使用SSMS数据库管理工具删除数据库 ......
删除数据库架构注意事项
要删除的架构不能包含任何对象。 如果架构包含对象,则 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脚本删除数据库架构需要刷新数据库架构文件夹查看删除结果。