Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Est-il possible d'utiliser le type de table défini par l'utilisateur dans un autre type de table défini par l'utilisateur dans sql

Non. Pourquoi le serait-il ? Ce n'est pas ainsi que fonctionne SQL Server (ou toute base de données relationnelle, d'ailleurs).

À partir de la page TechNet sur les types de table définis par l'utilisateur :

"L'imbrication" dans les bases de données relationnelles est réalisée en utilisant clés étrangères

Vous ne pouvez même pas créer une contrainte de clé étrangère entre deux types de table définis par l'utilisateur.

Ce que vous pouvez faire est de créer deux types de table dont l'un a une colonne pour conserver l'identifiant de l'autre, comme ceci :

CREATE TYPE A AS TABLE
(
    A_Id int
)

GO


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