【问题标题】:Having unique records based on specific columns in SQL Server拥有基于 SQL Server 中特定列的唯一记录
【发布时间】:2019-05-16 10:58:01
【问题描述】:

请根据我的表中的某些特定列创建唯一行。

这是我下面的桌子

CREATE TABLE [dbo].[tbl_StudentProgress]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [FK_ClassId] [int] NOT NULL,
    [StudentName] [nvarchar](max) NULL,
    [AdmissionNumber] [nvarchar](max) NULL,
    [Term] [nvarchar](max) NULL,
    [Fk_SubjectId] [int] NOT NULL,
    [Assignment1] [decimal](18, 2) NOT NULL,
    [Assignment2] [decimal](18, 2) NOT NULL,
    [Assignment3] [decimal](18, 2) NOT NULL,
    [Note] [decimal](18, 2) NOT NULL,
    [CA1] [decimal](18, 2) NOT NULL,
    [CA2] [decimal](18, 2) NOT NULL,
    [Exam] [decimal](18, 2) NOT NULL,
    [TotalScore] [decimal](18, 2) NOT NULL,
    [ClassName] [nvarchar](max) NULL,
    [UserName] [nvarchar](max) NULL,
    [FK_Session] [int] NOT NULL,
    [DateEntered] [datetime] NOT NULL DEFAULT ('1900-01-01T00:00:00.000'),

    CONSTRAINT [PK_dbo.tbl_StudentProgress] 
        PRIMARY KEY CLUSTERED ([ID] ASC)
                WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                      IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                      ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

具体的列是FK_ClassIdStudentNameAdmissionNumberTermFK_SubjectIdFK_Session

请问我该怎么做?

谢谢 蒂姆

【问题讨论】:

    标签: sql-server unique rows


    【解决方案1】:

    如果我理解正确,您只需要一个唯一的约束:

    alter table tbl_StudentProgress add constraint unq_tbl_StudentProgress_6
        unique (FK_ClassId, StudentName, AdmissionNumber, Term, FK_SubjectId, FK_Session);
    

    【讨论】:

    • 正是@Gordon,我只是不知道如何更好地问它。感谢您的回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 2020-12-06
    • 2010-10-17
    • 1970-01-01
    相关资源
    最近更新 更多