Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ist es möglich, einen benutzerdefinierten Tabellentyp innerhalb eines anderen benutzerdefinierten Tabellentyps in SQL zu verwenden?

Nein. Warum sollte es so sein? So funktioniert SQL Server (oder eine andere relationale Datenbank) nicht.

Von TechNet-Seite zu benutzerdefinierten Tabellentypen :

„Verschachtelung“ in relationalen Datenbanken wird durch die Verwendung von Fremdschlüsseln erreicht

Sie können nicht einmal eine Fremdschlüsseleinschränkung zwischen zwei benutzerdefinierten Tabellentypen erstellen.

Was Sie tun können, ist, zwei Tabellentypen zu erstellen, von denen einer eine Spalte hat, um die ID des anderen zu behalten, wie hier:

CREATE TYPE A AS TABLE
(
    A_Id int
)

GO


CREATE TYPE B AS TABLE
(
    B_Id int,
    A_Id int -- "FK"
)
GO