Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/01/2012, 14:39
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Int o varchar como llave primaria

Al tener una llave numerica te hace mas rapidas las consultas, sobre todo si clave de producto es grande (digamos 18-20 caracteres) y haces joins con otras tablas con mucha info.. inventarios, transacciones.. etc..

Pero bueno a veces no es practico tener el auto incrementable por lo que ya se ha mencionado en otros posts..


Sin embargo si deseas utilizarlo SQL te provee de restriccion de clave unica, para validar la consistencia de tu info..y que no halla repetidos (sin depender de la capa de programacion)...

por ejemplo:

Código:
if OBJECT_ID('tempdb..#tmpTest') is not null drop table #tmpTest

create table #tmpTest (iKey int identity(1,1) Primary key, cProduct CHAR(10) Unique  )

INSERT INTO #tmpTest VALUES('PROD01'),('PROD02'),('PROD03'),('PROD04'),('PROD05')

SELECT * FROM #tmpTest

INSERT INTO #tmpTest VALUES('PROD05')


Este ultimo truena con este mensaje..

Msg 2627, Level 14, State 1, Line 9
Violation of UNIQUE KEY constraint 'UQ__#tmpTest__368D6FC77A67F969'. Cannot insert duplicate key in object 'dbo.#tmpTest'.
The statement has been terminated.
Y como referencia..

Primary key VS Unique key in SQL Server

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.