Как определить пользовательские типы (объектно-ориентированная база данных) в SQL Server 2017?
На нашем курсе по базам данных в университете нашим справочником были "Основы систем баз данных" от Elmasri. В главе 12 этой книги мы познакомились с объектно-ориентированными системами баз данных, в которых пользовательские типы (UDT) рассматривались как объекты.
Я хочу создать эти UDT в Microsoft SQL Server 2017, но, похоже, нет синтаксиса, соответствующего ключевым словам в примерах этой главы, таких как INSTANTIABLE, FINAL, REF.
Я пробовал использовать синтаксис CREATE TYPE <type-name> AS ( <definition> )
но это не похоже на работу. Тем не менее, синтаксис CREATE TYPE <type-name> AS TABLE ( <definition> )
работает в SQL Server Management Studio, но я все еще не могу найти эквиваленты для ключевых слов, упомянутых выше.
Код (или псевдокод) ниже является одним из примеров, представленных в книге, и я не могу реализовать это в SQL Server Management Studio
CREATE TYPE PERSON_TYPE AS (
NAME VARCHAR (35),
SEX CHAR,
BIRTH_DATE DATE,
PHONES USA_PHONE_TYPE ARRAY [4],
ADDR USA_ADDR_TYPE
INSTANTIABLE
NOT FINAL
REF IS SYSTEM GENERATED
INSTANCE METHOD AGE() RETURNS INTEGER;
CREATE INSTANCE METHOD AGE() RETURNS INTEGER
FOR PERSON_TYPE
BEGIN
RETURN /* CODE TO CALCULATE A PERSON’S AGE FROM
TODAY’S DATE AND SELF.BIRTH_DATE */
END;
);