2010-11-04 17 views
14

Quiero construir una tabla de empleados utilizando SQL Server 2008, y en mi mesa yo quiero tener un ID para cada empleado.¿cómo puedo usar el tipo de datos GUID en SQL Server 2008?

I heared sobre GUID y que tipo de entender que es un tipo de datos, pero no pude utilizarlo

podría por favor me muestran el camino a usarlo ...

por cierto , digamos que quiero algo como esto:

CREATE tabla empleados ( ID PRIMARY KEY GUID, Nombre nvarchar (50) NOT NULL )

¿Cómo puedo hacerlo ?? porque quiero beneficiarse de ella, pero no podía encontrar la manera de hacer que

Respuesta

20

No se llama GUID en SQL Server. Se llama uniqueidentifier

2

No utilice uniqueidentifier como clave primaria si clúster (que es el valor predeterminado para PK)

En serio: utilizar una identidad estándar en lugar

+0

No llegué bien, ¿qué significan diciendo, el uso de identidad en lugar – Mouayad

+0

¿Se puede elaborar en eso? ¿Qué pasa si quieres que tu ID sea globalmente única? Realmente no puedo pensar en una razón por la que querrías eso ahora, pero estoy interesado en saber por qué es una mala idea. –

+1

@Hugo: Véase, por ejemplo, el artículo de Kimberly L. Tripp: [GUID como claves primarias y/o la clave de agrupación] (http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY- KEYs-andor-the-clustering-key.aspx). –

13

El tipo se llama UNIQUEIDENTIFIER como otros ya han señalado. Pero creo que absolutamente debe leer este artículo antes de continuar: GUIDs as PRIMARY KEYs and/or the clustering key

+0

+1 gran enlace: GUID como PK es intrigante, ¡pero tiene un precio! –

0

También puede considerar el uso de NEWSEQUENCIALID como el valor predeterminado para su columna de identificación, ya que sería más rápido que usar NEWID() generar los GUID.

PERO (desde el mismo enlace de arriba): -

Si la privacidad es una preocupación, no utilice esta función. Es posible adivinar el valor del siguiente GUID generado y, por lo tanto, acceder a los datos asociados con ese GUID.

1

demostración práctica, Fwiw

DECLARE @guid1 AS uniqueidentifier 
SET @guid1 = NEWID() 
SELECT @guid1 
Cuestiones relacionadas