2012-09-21 3 views
2

내 테이블에서 두 개의 열을 선택하여 해당 테이블을 unique으로 만들고 싶지만 SQL Azure 데이터베이스에서 수행하는 방법을 모르겠습니다. 아래의 이미지에서 볼 수 있듯이, 그것은 테이블 속성을 수정할 수있는 옵션이 표시되지 않습니다, 그래서 모든 SQL 쿼리를 사용하여 수행됩니다 :SQL Azure에서 둘 이상의 고유 열을 만드는 방법은 무엇입니까?

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 
:
여기 enter image description here

테이블의 생성 된 스크립트입니다

이 내가 문제가있어서 미리보기, 그것은 중복 레코드를 포함
enter image description here

희망 누군가가 내 설명을 이해합니다.

+0

당신이 조합을 하시겠습니까'(MODULENAME, ClientAuthenticationId)': 당신은 항상 고유 ALTER TABLE와 제약 조건을 추가 할 수 있습니까? –

+0

네, 그렇습니다. :-) – fiberOptics

+2

ALTER TABLE을 사용하여 고유 제한 조건을 추가 할 수 있습니다. 'ALTER TABLE [dbo]. [클라이언트 액세스] ADD CONSTRAINT Module_Client_UQ UNIQUE (ModuleName, ClientAuthenticationId);' –

답변

7

가끔 GUIS에는 제한이 있지만 (모든 기능이 어떻게 작동하는지 아직 알 수는 없습니다). 2 열 고유의

ALTER TABLE [dbo].[clientaccess] 
    ADD CONSTRAINT Module_Client_UQ    --- choose a name 
    UNIQUE (ModuleName, ClientAuthenticationId) ; 
+0

완벽하게 작동합니다! 감사! – fiberOptics

+0

"때로는 GUIS에 제한이 있습니다 ..."SQL Azure이기 때문에 SQL Azure 데이터베이스에 액세스 할 때 Mgt Studio 내의 모든 기능에 액세스 할 수 없습니다. –

+0

@Matt : Thnx. Azure를 사용하지 않았기 때문에 OP가 길을 찾지 못하거나 한계가 있는지 확실하지 않았습니다. –

관련 문제