Posible conflicto entre tipo de datos e identificador

17/07/2009 - 01:26 por Alexa | Informe spam
Si la clave primaria de una tabla es su campo autonumérico el cual he
definido como SMALLINT ¿existiría algun problema si al usar dicho campo como
FK desde otra tabla,dicho campo de esa otra tabla es del tipo INT ? (yo
supongo que no deberia haber problemas porque ambos son tipos de datos ,
AUNQUE NO IGUALES, SI similiares)

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
17/07/2009 - 09:12 | Informe spam
No es muy complicado de probar, pero, en cualquier caso, aunque sean tipos
de datos "similares", sigue sin poderse crear. Los dos tienen que ser el
mismo tipo de dato

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba


" Alexa" wrote in message
news:
Si la clave primaria de una tabla es su campo autonumérico el cual he
definido como SMALLINT ¿existiría algun problema si al usar dicho campo
como FK desde otra tabla,dicho campo de esa otra tabla es del tipo INT ?
(yo supongo que no deberia haber problemas porque ambos son tipos de datos
, AUNQUE NO IGUALES, SI similiares)
Respuesta Responder a este mensaje
#2 Alejandro Mesa
17/07/2009 - 13:43 | Informe spam
Alexa,

Trata con un ejemplo y veraz. Al menos en SQL Server 2005, no podras crear
una restriccion de clave foranea si ambos tipos no son iguales.

Aca tienes un ejemplo, fijate en el primer error.

USE tempdb;
GO

CREATE TABLE dbo.t1 (
c1 SMALLINT NOT NULL IDENTITY(1, 1) PRIMARY KEY
)
GO

CREATE TABLE dbo.t2 (
ak INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
c1 INT NOT NULL REFERENCES dbo.t1(c1)
)
GO

DROP TABLE dbo.t2, dbo.t1;
GO

Msg 1778, Level 16, State 0, Line 2
Column 'dbo.t1.c1' is not the same data type as referencing column 't2.c1'
in foreign key 'FK__t2__c1__59695A56'.

Msg 1750, Level 16, State 0, Line 2
Could not create constraint. See previous errors.

Msg 3701, Level 11, State 5, Line 2
Cannot drop the table 'dbo.t2', because it does not exist or you do not have
permission.


AMB


"Alexa" wrote:

Si la clave primaria de una tabla es su campo autonumrico el cual he
definido como SMALLINT existira algun problema si al usar dicho campo como
FK desde otra tabla,dicho campo de esa otra tabla es del tipo INT ? (yo
supongo que no deberia haber problemas porque ambos son tipos de datos ,
AUNQUE NO IGUALES, SI similiares)

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida