数据库中的表类型列

时间:2019-03-19 21:32:10

标签: sql sql-server user-defined-types

我可以用表类型或用户定义的表类型列创建表吗? 当我尝试时出现此错误。 (https://i.stack.imgur.com/mCCY8.jpg

2 个答案:

答案 0 :(得分:1)

您的问题被标记为SQL,这意味着该问题与ISO SQL标准有关(将鼠标悬停在标签上并阅读其内容)。

SQL标准允许使用各种方式来定义用户定义的类型(并将这些类型用作基本表中的列的类型)。

SQL标准还允许表达式产生带有其类型本身就是表的列的表(为此,您将使用COLLECT运算符)。因此,还可以使用类型本身就是表的列来定义视图。并且由于SQL的目的是尽可能地将视图与基本表一样对待,因此,对您的问题的技术回答是“是的,SQL可以使用表类型的列定义表”,但条件是“只要您将这些表定义为视图”;因为SQL不允许在“真正的”基表中执行此操作。 AFAIK。

答案 1 :(得分:0)

您可以扩展现有类型并进行自定义。我建议您看一下Microsoft Docs的这篇文章。

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql?view=sql-server-2017

示例

CREATE TYPE SSN  
FROM varchar(11) NOT NULL ;  

您还可以进行更高级的操作。