Uniqueidentifier

11/11/2008 - 16:38 por Carles | Informe spam
Hola,

Tengo una tabla cuya PK está definida como uniqueidentifier. Se genera su
valor con NewID() estando como valor por defecto.
El problema surge al intentar relacionar otra tabla con esta a través de su
PK. Como se debe definir la clave foranea??

Ej.

Tabla1 {
ID uniqueidentifier not null default newid(),
Nombre nvarchar(50)
}

Tabla 2 {
IDTabla1 /*Que tipo de datos debo poner??? */
}

Los registros de Tabla2 no deben ser generados por NewID() puesto que el
valor de IDTabla1 siempre será uno que exista en Tabla1.
para hacer algo como select * from Tabla1 inner join Tabla2 on Tabal1.ID =
Tabla2.IDTabla1
O, es que no se puede?


Grácias!
 

Leer las respuestas

#1 Carlos Sacristan
11/11/2008 - 17:25 | Informe spam
Pues tendrá que ser del tipo de datos uniqueidentifier, igual que la tabla de
la que depende, pero sin indicar que ponga ningún valor por defecto.

Por otra parte, si estás usando SQL Server 2005, en vez de NewID, usa mejor
NEWSEQUENTIALID, para evitar al menos la fragmentación de esa tabla


Un saludo
-
www.navento.com
Servicios de Localización GPS


"Carles" wrote:

Hola,

Tengo una tabla cuya PK está definida como uniqueidentifier. Se genera su
valor con NewID() estando como valor por defecto.
El problema surge al intentar relacionar otra tabla con esta a través de su
PK. Como se debe definir la clave foranea??

Ej.

Tabla1 {
ID uniqueidentifier not null default newid(),
Nombre nvarchar(50)
}

Tabla 2 {
IDTabla1 /*Que tipo de datos debo poner??? */
}

Los registros de Tabla2 no deben ser generados por NewID() puesto que el
valor de IDTabla1 siempre será uno que exista en Tabla1.
para hacer algo como select * from Tabla1 inner join Tabla2 on Tabal1.ID =
Tabla2.IDTabla1
O, es que no se puede?


Grácias!





Preguntas similares