向用户定义表类型添加自动增量列是否标准?

本文关键字:是否 标准 定义 用户 类型 添加 | 更新日期: 2023-09-27 17:51:08

我有收集在我的客户端c#应用程序,其中包括5列。在DB中,我创建了一个包含六列的用户定义表类型(UDTT)。第一列是一个自动增量,我将使用它来获取存储在其中的每一行。表结构为pSelCRSInfo

    while(@cntr <= @pProgDuration)
    begin 
        select 
        @CRSID=CRSID,
        @YearNo=YearNo,
        @IsCompulsory=IsCompulsory,
        @EntDT=EntDT,
        @EmpID=EmpID 
        from @pSelCRSInfo where CntrNo=@cntr
        insert into DefaultCourses 
        (PRGID,CRSID,YearNo,IsCompulsory,EntDT,EmpID)
        values (@newPRGID,@CRSID,@YearNo,@IsCompulsory,@EntDT,@EmpID)
                                set @cntr = @cntr + 1
          end

在它的定义中我添加了

create type dbo.SelectedCourses
as table
(
    CntrNo int not null IDENTITY(1, 1), 
    CRSID int,
    YearNo int,
    IsCompulsory varchar(20),
    EntDT datetime,
    EmpID int
);
go

目前我正在努力如何将5列集合传递到需要6列的集合?

通常情况下,人们创建UDTT结构与自动增量列接受集合?因为我可以从客户端生成自动增量列生成的数字然后将其与集合

一起发送

谢谢

向用户定义表类型添加自动增量列是否标准?

我想说这完全取决于你。如果自动递增值符合您的目的,那么一定要使用它们。我愿意。

所以假设我已经创建了一个具有自动增量列的UDTT,那么我仍然应该传递像下面这样的6列集合,并将第一列保留为空

//leave the first column empty
acd.dtCourses.Rows[CollCounter][0] = string.Empty    
acd.dtCourses.Rows[CollCounter][1] = dt.Rows[i][2];
acd.dtCourses.Rows[CollCounter][2] = dt.Rows[i][3];
acd.dtCourses.Rows[CollCounter][3] = dt.Rows[i][4];
acd.dtCourses.Rows[CollCounter][4] = DateTime.Today;
acd.dtCourses.Rows[CollCounter][5] = myAcedemics.EmpID;

dtCourses是接受集合的datatable,我的acd是业务类Academics的对象