একাধিক কলামে অনন্য বাধা


248
CREATE TABLE [dbo].[user](
        [userID] [int] IDENTITY(1,1) NOT NULL,
        [fcode] [int] NULL,
        [scode] [int] NULL,
        [dcode] [int] NULL,
        [name] [nvarchar](50) NULL,
        [address] [nvarchar](50) NULL,
     CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED 
    (
        [userID] ASC
    )
    ) ON [PRIMARY]

    GO

আমি কিভাবে কলামের জন্য একটি অনন্য বাধ্যতা যুক্ত করব fcode, scode, dcodeসঙ্গে t-sqlএবং / অথবা management studio? fcode, scode, dcodeএকসাথে অনন্য হতে হবে।


9
তার মানে কি এই যে আপনি একই ফোকোড বা স্কোড বা ডকোডের অনেকগুলি থাকতে পারেন তবে একই ফলকোড এবং স্কোড এবং ডকোড সহ দুটি রেকর্ড কখনও থাকতে পারে না?
জিম্বো

উত্তর:


291

সারণী তৈরির ক্ষেত্রে সীমাবদ্ধ সংজ্ঞাটি ব্যবহার করে আপনি এক বা একাধিক সীমাবদ্ধতা নির্দিষ্ট করতে পারেন যা একাধিক কলামগুলিকে বিস্তৃত করে। টেকনেটের ডকুমেন্টেশন থেকে সরলীকৃত বাক্য গঠনটি এই আকারে রয়েছে:

CONSTRAINT constraint_name UNIQUE [ CLUSTERED | NONCLUSTERED ] 
(
    column [ ASC | DESC ] [ ,...n ]
)

সুতরাং, পুনরায় সারণী সংজ্ঞাটি হ'ল:

CREATE TABLE [dbo].[user](
    [userID] [int] IDENTITY(1,1) NOT NULL,
    [fcode] [int] NULL,
    [scode] [int] NULL,
    [dcode] [int] NULL,
    [name] [nvarchar](50) NULL,
    [address] [nvarchar](50) NULL,
    CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED 
    (
        [userID] ASC
    ),
    CONSTRAINT [UQ_codes] UNIQUE NONCLUSTERED
    (
        [fcode], [scode], [dcode]
    )
) ON [PRIMARY]

418

যদি টেবিলটি ইতিমধ্যে ডাটাবেসে তৈরি করা থাকে, তবে আপনি এই এসকিউএল কোয়েরি ব্যবহার করে পরে একটি অনন্য বাধা যুক্ত করতে পারেন:

ALTER TABLE dbo.User
  ADD CONSTRAINT ucCodes UNIQUE (fcode, scode, dcode)

নাকি ADD CONSTRAINT ucCodes UNIQUE NONCLUSTERED?
কিকিনেট

52

এটি জিইউআইতেও করা যেতে পারে। বিদ্যমান টেবিলটিতে একটি বহু-কলামের অনন্য বাধা যুক্ত করার উদাহরণ এখানে।

  1. সারণির নীচে, সূচকগুলিতে ডান ক্লিক করুন -> ক্লিক করুন / হোভার করুন নতুন সূচি -> নন-ক্লাস্টারড সূচক ক্লিক করুন ...

এখানে চিত্র বর্ণনা লিখুন

  1. একটি ডিফল্ট সূচকের নাম দেওয়া হবে তবে আপনি এটি পরিবর্তন করতে পারেন। স্বতন্ত্র চেকবক্সটি পরীক্ষা করে অ্যাড ... বোতামটি ক্লিক করুন

এখানে চিত্র বর্ণনা লিখুন

  1. আপনি যে কলামগুলি অন্তর্ভুক্ত করতে চান তা পরীক্ষা করুন

এখানে চিত্র বর্ণনা লিখুন

প্রতিটি উইন্ডোতে ঠিক আছে ক্লিক করুন এবং আপনার কাজ শেষ।


1
দ্রষ্টব্য: আপনার যদি ইতিমধ্যে নকশা দৃষ্টিতে টেবিলটি খোলা থাকে তবে এই বিকল্পটি উপলভ্য নয়। তাই ডিজাইনের ট্যাবটি করার আগে প্রথমে বন্ধ করুন।
যাদুঘর

0
USE [TSQL2012]
GO

/****** Object:  Table [dbo].[Table_1]    Script Date: 11/22/2015 12:45:47 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Table_1](
    [seq] [bigint] IDENTITY(1,1) NOT NULL,
    [ID] [int] NOT NULL,
    [name] [nvarchar](50) NULL,
    [cat] [nvarchar](50) NULL,
 CONSTRAINT [PK_Table_1] 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],
 CONSTRAINT [IX_Table_1] UNIQUE NONCLUSTERED 
(
    [name] ASC,
    [cat] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

13
এই কোডটি প্রশ্নের উত্তর দিতে পারে, তবে এটি কীভাবে কাজ করে এবং কখন এটি ব্যবহার করবে তা ব্যাখ্যা করে কিছু প্রসঙ্গ অন্তর্ভুক্ত করা ভাল। কোড-কেবল উত্তরগুলি দীর্ঘমেয়াদে কার্যকর নয়।
বোনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.