Могу ли я создать таблицу с пользовательским типом таблицы? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть тип таблицы с именем 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.

1 Ответ

0 голосов
/ 05 сентября 2018

Мне кажется, что вы пытаетесь применить ООП-подходы к реляционной БД. Что-то вроде «указателя» на любые данные. Это не так, как это работает в RDBMS.

Возможно, вам нужна такая реляционная схема:

Client <- EmployeePerClient -> Employee

Ни один из них не должен быть table type, все они должны быть table s с foreign key s, определяющими их зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...