2

我想在我的表中选择两列并制作它们unique,但我不知道如何在 SQL Azure 数据库中执行此操作。如下图所示,它没有显示任何修改表属性的选项,所以一切都是使用 sql 查询完成的:
在此处输入图像描述

这是表的生成脚本:

USE [mydbase]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[clientaccess](
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [ModuleName] [nvarchar](50) NOT NULL,
    [ClientAuthenticationId] [bigint] NOT NULL,
    [HasAccess] [bit] NOT NULL,
 CONSTRAINT [PK_clientaccess_ID] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)
)

GO

ALTER TABLE [dbo].[clientaccess]  WITH CHECK ADD  CONSTRAINT [CAI_caID] FOREIGN KEY([ClientAuthenticationId])
REFERENCES [dbo].[clientauthentication] ([ID])
GO

ALTER TABLE [dbo].[clientaccess] CHECK CONSTRAINT [CAI_caID]
GO  

这是我遇到问题的预览,它包含重复的记录:
在此处输入图像描述

希望有人能理解我的解释。

4

1 回答 1

7

有时 GUIS 有限制(或者没有,但您还没有发现所有功能是如何工作的)。您始终可以使用以下命令添加唯一约束ALTER TABLE

ALTER TABLE [dbo].[clientaccess] 
  ADD CONSTRAINT Module_Client_UQ                --- choose a name
  UNIQUE (ModuleName, ClientAuthenticationId) ;
于 2012-09-21T06:38:25.830 回答