DROP TYPE (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

从当前数据库中删除别名数据类型或公共语言运行时 (CLR) 用户定义的类型。

Transact-SQL 语法约定

语法

DROP TYPE [ IF EXISTS ] [ schema_name. ] type_name [ ; ]  

参数

IF EXISTS
适用范围:SQL Server(SQL Server 2016 (13.x) 到当前版本)。

只有在类型已存在时才对其进行有条件地删除。

schema_name
别名或用户定义的类型所属的架构名。

type_name
要删除的别名数据类型或用户定义的类型的名称。

备注

在满足以下任何条件的情况下,将不执行 DROP TYPE 语句:

  • 数据库中存在包含别名数据类型列或用户定义的类型列的表。 通过查询 sys.columnssys.column_type_usages 目录视图可获得有关别名类型列或用户定义类型列的信息。

  • 存在定义中引用了别名类型和用户定义类型的计算列、CHECK 约束、架构绑定视图和绑定到架构的函数。 通过查询 sys.sql_expression_dependencies 目录视图可获得有关这些引用的信息。

  • 存在在数据库中创建的函数、存储过程或触发器,且这些例程使用别名类型或用户定义的类型的变量和参数。 通过查询 sys.parameterssys.parameter_type_usages 目录视图可获得有关别名类型参数或用户定义类型参数的信息。

权限

需要对 type_name 拥有 CONTROL 权限,或对 schema_name 拥有 ALTER 权限

示例

以下示例假设已经在当前数据库中创建了一个名为 ssn 的类型。

DROP TYPE ssn ;  

另请参阅

CREATE TYPE (Transact-SQL)
EVENTDATA (Transact-SQL)