在 t-sql 中定义用户定义的 table 中的约束时出错
Error while defining constraints in user defined table in t-sql
我正在尝试创建一个用户定义的 table 类型,我想在其中定义外键和唯一键约束,但我无法这样做。每当我 运行 以下内容时,我都会收到错误消息“关键字 '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
)
table 类型不能有命名约束,也不能有外键。
它可能只有未命名的主键、唯一键和检查约束。
有关详细信息,请参阅 https://docs.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql?view=sql-server-ver15。
您可以改用这个:
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
)
我正在尝试创建一个用户定义的 table 类型,我想在其中定义外键和唯一键约束,但我无法这样做。每当我 运行 以下内容时,我都会收到错误消息“关键字 '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
)
table 类型不能有命名约束,也不能有外键。 它可能只有未命名的主键、唯一键和检查约束。 有关详细信息,请参阅 https://docs.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql?view=sql-server-ver15。
您可以改用这个:
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
)