我有一个名为EmpType的表类型,其结构如下:
CREATE TYPE EmpType AS TABLE
(
ClientId UNIQUEIDENTIFIER,
EmployeeId INT,
Experience SMALLINT,
Age SMALLINT
);
此查询已在MS SQL Server中成功运行。
现在,我尝试使用此表类型构造另一个表,这给了我一个错误。
CREATE TABLE EmpHashIndex2
(
HashIndex SMALLINT CONSTRAINT has_pk PRIMARY KEY,
TableName dbo.EmpType
);
执行上述查询后,它显示错误消息:
The column "TableName" does not have a valid data type. A column cannot be of a user-defined table type.
答案 0 :(得分:0)
在我看来,您正在尝试将OOP方法应用于Relational DB。类似于“指向” 任何数据的指针。这不是它在RDBMS中的工作方式。
也许您需要这样的关系模式:
Client <- EmployeePerClient -> Employee
它们都不是table type
,它们都必须是table
,其中foreign key
定义了它们的依赖关系。