Làm cách nào để tạo một ràng buộc duy nhất trên bảng hiện có trong SQL Server 2005?SQL Server 2005 Làm thế nào để tạo một ràng buộc duy nhất?
Tôi đang tìm cả TSQL và cách thực hiện trong Sơ đồ cơ sở dữ liệu.
Làm cách nào để tạo một ràng buộc duy nhất trên bảng hiện có trong SQL Server 2005?SQL Server 2005 Làm thế nào để tạo một ràng buộc duy nhất?
Tôi đang tìm cả TSQL và cách thực hiện trong Sơ đồ cơ sở dữ liệu.
Lệnh SQL là:
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
Xem toàn bộ cú pháp here.
Nếu bạn muốn làm điều đó từ một Sơ đồ cơ sở dữ liệu:
Nó hoạt động ... nhưng ... tại sao ràng buộc là hiển thị dưới thư mục INDEX thay vì thư mục CONSTRAINTS. Nó được hiển thị với một biểu tượng khác, nhưng dù sao nó cũng phải ở trong thư mục ràng buộc. –
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
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
Trong sơ đồ studio 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ác và chọn "Kiểm tra ràng buộc", ở đó bạn có thể thêm một.
Tôi cũng thấy rằng bạn có thể thực hiện việc này thông qua các biểu đồ cơ sở dữ liệu.
Bằng cách kích chuột phải vào bảng và chọn Indexes/Keys ...
Nhấp vào nút 'Add', và thay đổi các cột đến cột (s) bạn muốn làm độc đáo.
Thay đổi là duy nhất thành Có.
Nhấp vào đóng và lưu biểu đồ và nó sẽ thêm nó vào bảng.
ALTER TABLE [TableName] ADD CONSTRAINT [constraintName] UNIQUE ([columns])
Cảnh báo: Chỉ có một hàng rỗng có thể ở cột bạn đã thiết phải là duy nhất.
Bạn có thể làm điều này với một chỉ số được lọc trong SQL 2008:
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
Xem Field value must be unique unless it is NULL cho một loạt các câu trả lời.
làm thế nào để bạn làm điều này trong sql server 2005? – Maxrunner
Không thể đạt được trong máy chủ sql 2005. Tôi khuyên bạn nên nâng cấp lên RDBMS cập nhật hơn - nó sẽ được [chính thức không được hỗ trợ] (http://blogs.msdn.com/b/sqlreleaseservices/archive/2011/ 01/27/end-of-chính-hỗ trợ-cho-sql-server-2005-và-end-of-dịch vụ-pack-hỗ trợ-cho-sql-server-2008-sp1.aspx) kể từ ngày 12 tháng 4 năm 2016. – reedstonefood
Trong SQL Server Management Studio Express:
Để tạo một hạn chế UNIQUE trên một hoặc nhiều cột khi bảng đã được tạo ra, sử dụng SQL sau:
ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
Để cho phép đặt tên của một hạn chế UNIQUE 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 MySQL/SQL Server/Oracle/MS Access.
'UNIQUE NONCLUSTERED' và *** options ***' PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON'? – Kiquenet
Liên kết này có thể giúp bạn http://www.codefari.com/2014/10/unique-key-constraint-in-sql-server.html – Singh