代码之家  ›  专栏  ›  技术社区  ›  jhon.smith

用户定义类型的SQL Server 2016列

  •  0
  • jhon.smith  · 技术社区  · 5 年前

    是否可以在SQL中的另一个用户定义表类型(嵌套的用户定义表类型)内使用用户定义表类型。

    CREATE TYPE A AS TABLE
    (
        A_Id int
    )
    
    GO
    
    
    CREATE TYPE B AS TABLE
    (
        B_Id int,
        A_Id A --Need To Use A as data type in B
    )
    GO
    

    我有一个表中的行的数据表。

    Table
    1.Item1
       1.Vendor1
       2.Vendor2
    2.Item1
       1.Vendor1
       2.Vendor2
    

    请帮助如何从以下位置发送表行中的表数据 从asp.net到sql . 通过循环还是有任何简单的方式将嵌套表数据发送到服务器。

    0 回复  |  直到 7 年前
        1
  •  4
  •   Zohar Peled    8 年前

    不,为什么?这不是sql server(或任何关系数据库)的工作方式。

    TechNet's page on User-Defined Table Types :

    限制

    用户定义的表类型具有以下限制:

    • 用户定义的表类型不能用作表中的列或 结构化用户定义类型中的字段。

    关系数据库中的“嵌套”是通过使用 Foreign keys

    甚至不能在两个用户定义的表类型之间创建外键约束。

    您可以创建两个表类型,其中一个表类型有一个列来保留另一个表类型的id,如下所示:

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