it-swarm-vi.tech

SQL Server 2005 Làm thế nào để tạo một ràng buộc duy nhất?

Làm cách nào để tạo một ràng buộc duy nhất trên một bảng hiện có trong SQL Server 2005?

Tôi đang tìm kiếm cả TSQL và cách thực hiện trong Sơ đồ cơ sở dữ liệu.

180
David Basarab

Lệnh SQL là:

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

Xem cú pháp đầy đủ tại đây .

Nếu bạn muốn làm điều đó từ Sơ đồ cơ sở dữ liệu:

  • nhấp chuột phải vào bảng và chọn 'Chỉ mục/Khóa'
  • nhấp vào nút Thêm để thêm chỉ mục mới
  • nhập thông tin cần thiết vào Thuộc tính ở phía bên phải:
    • các cột bạn muốn (nhấp vào nút Ellipsis để chọn)
    • thiết lập là duy nhất thành có
    • đặt cho nó một cái tên thích hợp
272
Rory

Trong SQL Server Management Studio Express:

  • Nhấp chuột phải vào bảng, chọn Sửa đổi hoặc Thiết kế (Dành cho các Phiên bản sau)
  • Bấm chuột phải vào trường, chọn Chỉ mục/Khóa ...
  • Bấm Thêm
  • Đối với Cột , chọn tên trường bạn muốn là duy nhất.
  • Đối với Loại , chọn Khóa duy nhất .
  • Bấm Đóng , Lưu bảng.
84
James Lawruk
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
28
WildJoe

Cảnh báo: Chỉ một hàng null có thể nằm trong cột bạn đặt là duy nhất.

Bạn có thể làm điều này với một chỉ mục được lọc trong SQL 2008:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

Xem Giá trị trường phải là duy nhất trừ khi nó là NULL cho một loạt các câu trả lời.

15
Squirrel
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]
13
Ivan Bosnic

Tôi cũng thấy bạn có thể làm điều này thông qua, sơ đồ cơ sở dữ liệu.

Bằng cách nhấp chuột phải vào bảng và chọn Chỉ mục/Khóa ...

Nhấp vào nút 'Thêm' và thay đổi các cột thành (các) cột bạn muốn tạo sự độc đáo.

Thay đổi là duy nhất thành Có.

Nhấp vào đóng và lưu sơ đồ, và nó sẽ thêm nó vào bảng.

10
David Basarab

Bạn đang tìm kiếm một cái gì đó như sau

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

Tài liệu MSDN

8
Thunder3

Để tạo một ràng buộc ĐỘC ĐÁO trên một hoặc nhiều cột khi bảng đã được tạo, hãy sử dụng SQL sau:

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Để cho phép đặt tên của một ràng buộc ĐỘC ĐÁO cho truy vấn trên

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Truy vấn được hỗ trợ bởi Truy cập MySQL/SQL Server/Oracle/MS.

6
Rafiq

Trong sơ đồ phòng quản lý chọn bảng, nhấp chuột phải để thêm cột mới nếu muốn, nhấp chuột phải vào cột và chọn "Kiểm tra ràng buộc", ở đó bạn có thể thêm một cột.

5
Gibbons

Trong một số trường hợp, có thể mong muốn đảm bảo Khóa duy nhất không tồn tại trước khi tạo. Trong những trường hợp như vậy, đoạn script dưới đây có thể giúp:

IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name> 
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>) 
GO
0
Mario Vázquez