Tsql 在t-sql中的用户定义表中定义约束时出错

Tsql 在t-sql中的用户定义表中定义约束时出错,tsql,user-defined-types,Tsql,User Defined Types,我正在尝试创建一个用户定义的表类型,我想在其中定义外键和唯一键约束,但我无法这样做。每当我运行以下命令时,就会出现错误“关键字“CONSTRAINT”附近的语法不正确” 请有人告诉我代码出了什么问题 create Type firstType as Table ( firstId int IDENTITY (1,1)CONSTRAINT PK_firstId PRIMARY KEY CLUSTERED (firstId), f_email varchar(200) CONSTRA

我正在尝试创建一个用户定义的表类型,我想在其中定义外键和唯一键约束,但我无法这样做。每当我运行以下命令时,就会出现错误“关键字“CONSTRAINT”附近的语法不正确” 请有人告诉我代码出了什么问题

create Type firstType as Table
(
    firstId int IDENTITY (1,1)CONSTRAINT PK_firstId PRIMARY KEY CLUSTERED (firstId),
    f_email varchar(200) CONSTRAINT AK_email UNIQUE(f_email) ,
    fname varchar(100),
    outId int CONSTRAINT FK_First FOREIGN KEY (outId) REFERENCES New(newId)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)

表类型不能有命名约束,也不能有外键。 它可能只有未命名的主键、唯一键和检查约束。 有关详细信息,请参阅

您可以改为使用此选项:

CREATE Type firstType as Table
(
    firstId int IDENTITY (1,1) PRIMARY KEY CLUSTERED (firstId),
    f_email varchar(200) UNIQUE(f_email) ,
    fname varchar(100),
    outId int
)

不支持外键约束。支持的约束包括主键、唯一和检查。有关表的详细信息,请参阅创建表(Transact-SQL)。“不正确的语法通常意味着您忘记了逗号。我认为您必须在constraint关键字之前添加逗号。表类型@LittleSoap不支持该语法,这就是为什么它们会出现语法错误;对象类型的语法无效。为什么要在
类型
而不是持久表中创建所有这些?下面是
类型的语法。。。