我可以用表类型或用户定义的表类型列创建表吗? 当我尝试时出现此错误。 (https://i.stack.imgur.com/mCCY8.jpg)
答案 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 ;
您还可以进行更高级的操作。