是否可以在sql中的另一个用户定义的表类型中使用用户定义的表类型

时间:2016-05-26 11:31:51

标签: sql sql-server sqldatatypes user-defined-types

是否可以在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 。通过循环或有任何简单的方法将嵌套表数据发送到服务器。

1 个答案:

答案 0 :(得分:4)

没有。为什么会这样?这不是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