📜  在 MS SQL Server 中创建、更改和删除架构

📅  最后修改于: 2021-09-10 02:31:58             🧑  作者: Mango

在本文中,我们将讨论模式以及如何创建、更改和删除模式。

1. 创建架构:
模式通常是对象的集合。对象可以是表、触发器、视图、过程等。一个数据库可能有一个或多个模式。 SQL Server 提供了预定义架构的功能。预定义模式的名称与内置模式的名称非常相似。

用户可以使用下面提到的语法创建模式。

句法 –

create schema schema_name
[AUTHORIZATION owner_name] 

Authorization 是一个关键字,它提供对模式的权限。他/她可以控制可以访问的资源,也可以提供安全性。所有者的姓名必须在 owner_name 下提供。也可以使用将进一步讨论的 alter schema 更改它。

为了更好的理解,下面举一个例子——

例子 –

create schema student
GO 

输出 –
GO 命令执行该语句并创建一个新模式。

2. 改变架构:
Alter 一般用于更改 SQL 中与表相关的内容。在 SQL Server 的情况下,alter_schema 用于将安全对象/内容从一个架构传输到同一数据库中的另一个架构。

句法 –

alter schema target_schemaname
TRANSFER [entity_type::] securable name 
  • target_schemaname 是应传输对象/内容的架构的名称。
  • TRANSFER 是将内容从一种模式传输到另一种模式的关键字。
  • entity _type 是要传输的对象的内容或种类。
  • securable_name 是对象所在的架构的名称。

当用户将架构的内容移动到另一个架构时,SQL Server 不会更改架构的名称。如果用户想要更改名称,则必须使用 drop_schema,并且需要为新模式重新创建对象。当对象移动时,SQL Server 不会自动更新,必须由用户手动修改。

例子 –
一个名为 university 的表有两个模式:

student and lecturer  

如果假设必须将学生的分数转移到讲师模式,则查询如下 –

alter schema student
TRANSFER [marks::] lecturer 

通过这种方式,标记被转移到讲师模式。

3.删除架构:
Ddrop_schema 用于模式及其相关对象必须从数据库中完全排除,包括其定义。

句法 –

drop schema [IF EXISTS] schema_name 

如果用户想要检查模式是否实际存在于数据库中,则 IF EXISTS 是可选的。 Schema_name 是数据库中架构的名称。

例子 –

drop schema [IF EXISTS] student 
  • Student 是实际存在于大学数据库中的模式。
  • 该模式与其定义一起从数据库中删除。