删除数据库架构注意事项

要删除的架构不能包含任何对象。 如果架构包含对象,则 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脚本删除数据库架构需要刷新数据库架构文件夹查看删除结果。

SQLServer之删除数据库架构的更多相关文章

  1. SQLServer之修改数据库架构

    修改数据库架构注意事项 用户与架构完全分离. ALTER SCHEMA 仅可用于在同一数据库中的架构之间移动安全对象. 若要更改或删除架构中的安全对象,请使用特定于该安全对象的 ALTER 或 DRO ...

  2. SQLServer之创建数据库架构

    创建数据库架构注意事项 包含 CREATE SCHEMA AUTHORIZATION 但未指定名称的语句仅允许用于向后兼容性. 该语句未引起错误,但未创建一个架构. CREATE SCHEMA 可以在 ...

  3. SQLserver无法删除数据库 "XXXX",因为该数据库当前正在使用。

    问题描述: 有时候删除库的时候,会显示无法删除数据库,因为该数据库当前正在使用. 解决方法: 方法一: EXEC msdb.dbo.sp_delete_database_backuphistory @ ...

  4. SQLServer 命令批量删除数据库中指定表(游标循环删除)

    DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ON ...

  5. ABP框架使用Mysql数据库,以及基于SQLServer创建Mysql数据库的架构和数据

    ABP默认的数据库是SQLServer,不过ABP框架底层是EF框架,因此也是很容易支持其他类型的数据库的,本篇随笔介绍在ABP框架使用Mysql数据库,以及基于SQLServer创建MySql数据库 ...

  6. EF当实体模型与数据库的架构不同时要删除数据库时的报错问题

    当使用的EF的时候,我们都知道EF当实体模型与数据库的架构不同时要删除数据库,这是会把错: 无法创建与 'master' 数据库之间的连接,这是因为已打开原始数据库连接,并且已从连接字符串中删除凭据. ...

  7. SQLServer之删除用户自定义数据库用户

    删除用户自定义数据库用户注意事项 不能从数据库中删除拥有安全对象的用户. 必须先删除或转移安全对象的所有权,才能删除拥有这些安全对象的数据库用户. 不能删除 guest 用户,但可在除 master ...

  8. sqlserver学习笔记(一)—— 登录本机sqlserver、启动和停止sqlserver服务、创建和删除数据库

    (重要参考:51自学网——SQL Server数据库教程) 首先按照网上教程安装好sqlserver,打开登录 登录本机sqlserver:①. ②localhost ③127.0.0.1 启动和停止 ...

  9. SQLServer之删除用户定义的数据库角色

    删除用户定义的数据库角色注意事项 无法从数据库删除拥有安全对象的角色. 若要删除拥有安全对象的数据库角色,必须首先转移这些安全对象的所有权,或从数据库删除它们. 无法从数据库删除拥有成员的角色. 若要 ...

随机推荐

  1. PAT1124:Raffle for Weibo Followers

    1124. Raffle for Weibo Followers (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...

  2. Qtp自动测试工具

    QTP是基于GUI界面的自动化测试工具,用于系统的功能测试. QTP录制的是鼠标和键盘的消息.QTP录制回放时基于windows操作系统的消息机制.QTP在录制时监听应用程序的消息,监听到之后把消息放 ...

  3. Redis数据过期和淘汰策略详解(转)

    原文地址:https://yq.aliyun.com/articles/257459# 背景 Redis作为一个高性能的内存NoSQL数据库,其容量受到最大内存限制的限制. 用户在使用Redis时,除 ...

  4. 注解@EnableDiscoveryClient,@EnableEurekaClient的区别

    SpringCLoud中的"Discovery Service"有多种实现,比如:eureka, consul, zookeeper. 1,@EnableDiscoveryClie ...

  5. swagger-ui生成api文档并进行测试

    一.Swagger UI简介 Swagger UI是一个API在线文档生成和测试的利器,目前发现最好用的.它的源码也开源在GitHub上,地址:GitHub: https://github.com/s ...

  6. Loadrunner 11 中Run-Time Setting详细参数说明

    .General/Run Logic :用来设置运行脚本迭代的次数,迭代次数只对run部分的脚本迭代次数有影响,对init和End部分无印象.一般设置未1~3次,只会影响在单位时间内客户端想服务器提交 ...

  7. c# 编程语言tag

    ['JavaScript','Objective-C','C++','C#','Basic','PHP','Python','Perl', 'Transact-SQL','ruby','CSS3',' ...

  8. Javascript中没有块级作用域(模仿)

    在C/C++中,由花括号封闭的代码块都有自己的作用域,也就是块级作用域(私有作用域).而在javascript中则没有块级作用域,首先来看一段代码: function test(){ for(var ...

  9. 译MassTransit 消息契约

    消息契约 在MassTransit中,使用.NET .NET系统定义消息契约.消息可以使用类和接口来定义,但是,建议类型使用只读属性而不使用行为. 注意:强烈建议使用消息接口的接口,基于多年的经验,具 ...

  10. 自动化测试用例getText()获取某一个元素的值返回null或空

    问题描述 页面上一个元素无法获取它的值. 用getText() 获取该元素的值返回null或空. 根本原因 ? 需要更多了解dom结构 解决办法 用getAttribute("value&q ...