定义 UDT 表和列

一旦包含用户定义类型 (UDT) 定义的程序集已在 Microsoft SQL Server 数据库中注册后,该程序集就可以在列定义中使用。

使用 UDT 创建表

没有用于在表中创建 UDT 列的特殊语法。您可以在某一列定义中使用 UDT 的名称,就像它是某一内部 SQL Server 数据类型一样。以下 CREATE TABLE Transact-SQL 语句创建名为 Points 的表,该表具有名为 ID 的列,该列定义为该表的 int 标识列和主键。第二个列名为 PointValue,其数据类型为 Point。在此示例中使用的架构名称是 dbo。请注意,您必须具有指定架构名称所需的权限。如果省略架构名称,将使用数据库用户的默认架构。

CREATE TABLE dbo.Points 
(ID int IDENTITY(1,1) PRIMARY KEY, PointValue Point)

对 UDT 列创建索引

有两个用于为 UDT 列编制索引的选项:

  • 为整个值编制索引。在此情况下,如果 UDT 是二进制排序的,则可以通过使用 CREATE INDEX Transact-SQL 语句对整个 UDT 列创建索引。

  • 对 UDT 表达式编制索引。您可以对 UDT 表达式在持久计算列上创建索引。该 UDT 表达式可以是 UDT 的某一字段、方法或属性。该表达式必须是确定性的并且不得执行数据访问。

有关详细信息,请参阅CLR 用户定义类型CREATE INDEX (Transact-SQL)