2010-11-04 79 views
14

Tôi muốn xây dựng một bảng nhân viên sử dụng SQL SERVER 2008, và trong bảng của tôi, tôi muốn có một ID cho mỗi nhân viên.làm cách nào tôi có thể sử dụng kiểu dữ liệu GUID trong SQL Server 2008?

Tôi nghe nói về GUID và tôi loại hiểu rằng một kiểu dữ liệu của nó, Nhưng tôi không thể sử dụng nó

bạn có thể vui lòng chỉ cho tôi cách để sử dụng nó ...

bằng cách này , cho phép nói rằng tôi muốn một cái gì đó như thế này:

CREATE TABLE Nhân viên ( ID guid PRIMARY KEY, Tên nVARCHAR (50) NOT NULL )

làm thế nào tôi có thể làm điều đó ?? bởi vì tôi muốn hưởng lợi từ nó, nhưng tôi không thể tìm ra cách để làm điều đó

Trả lời

20

Nó không được gọi là GUID trong SQL Server. Nó được gọi là uniqueidentifier

2

Không sử dụng uniqueidentifier như khóa chính nếu nhóm (đó là mặc định cho PKS)

Nghiêm túc: sử dụng nhận dạng tiêu chuẩn thay vì

+0

tôi đã không nhận được bạn tốt, những gì có nghĩa là bằng cách nói, sử dụng danh tính thay vì – Mouayad

+0

Bạn có thể xây dựng trên đó? Điều gì sẽ xảy ra nếu bạn muốn ID của mình là duy nhất trên toàn cầu? Có thể không thực sự nghĩ ra một lý do tại sao bạn muốn điều đó ngay bây giờ, nhưng tôi quan tâm đến việc biết tại sao nó là một ý tưởng tồi? –

+1

@Hugo: Xem, ví dụ: bài viết của Kimberly L. Tripp: [GUID là khóa CHÍNH và/hoặc khóa phân cụm] (http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY- KEY-andor-the-clustering-key.aspx). –

13

Loại được gọi là UNIQUEIDENTIFIER khi những người khác đã chỉ ra rồi. Nhưng tôi nghĩ bạn hoàn toàn phải đọc bài viết này trước khi tiếp tục: GUIDs as PRIMARY KEYs and/or the clustering key

+0

+1 liên kết tuyệt vời - GUID là PK hấp dẫn - nhưng có giá! –

0

Bạn cũng có thể xem xét sử dụng NEWSEQUENCIALID làm giá trị mặc định cho cột ID vì nó sẽ nhanh hơn sử dụng NEWID() tạo GUID.

NHƯNG (từ liên kết cùng ở trên): -

Nếu sự riêng tư là một mối quan tâm, không sử dụng chức năng này. Có thể đoán giá trị của GUID được tạo tiếp theo và, do đó, truy cập dữ liệu được liên kết với GUID đó.

1

bản demo thực tế, FWIW

DECLARE @guid1 AS uniqueidentifier 
SET @guid1 = NEWID() 
SELECT @guid1 
Các vấn đề liên quan