How to add an index or primary key to a user-defined table type in SQL Server?

前端 未结 2 1680
陌清茗
陌清茗 2021-02-11 16:07

I have this user-defined type that I would like to add a primary key or index to:

IF NOT EXISTS (
  SELECT * 
  FROM sys.types st 
  JOIN sys.schemas ss 
    ON          


        
2条回答
  •  情歌与酒
    2021-02-11 16:23

    Why not this?

    CREATE TYPE [dbo].[DistCritGroupData] AS TABLE
      (
        [DistCritTypeId] [int] NOT NULL PRIMARY KEY CLUSTERED,
        [ItemAction] [int] NOT NULL,        
        [ObjectId] [int] NOT NULL,
        [OperatorType] [int] NOT NULL     
      );
    

    or

    CREATE TYPE [dbo].[DistCritGroupData] AS TABLE
      (
        [DistCritTypeId] [int] NOT NULL,
        [ItemAction] [int] NOT NULL,        
        [ObjectId] [int] NOT NULL,
        [OperatorType] [int] NOT NULL,
        PRIMARY KEY CLUSTERED ([DistCritTypeId] ASC)        
      );
    

    CREATE TYPE does not allow naming of contraints. Like table variables.

提交回复
热议问题