Как определить пользовательские типы (объектно-ориентированная база данных) в SQL Server 2017? - PullRequest
0 голосов
/ 06 июля 2019

В нашем курсе по базам данных в университете нашим справочником был «Основы систем баз данных» Элмасри.В главе 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;
);
...