none
poner una columna con identidad (identity true) RRS feed

  • Pregunta

  • hola como estan , estoy trabajando en una relacion many to many y tengo tres tablas:

    Tabla1
    
    idcliente int not null identity(1,1)

    Tabla2
    
    idproveedor int not null identity (1,1)

    (entre esas dos tablas tengo que hacer la relacion many to many ya cree las conecciones la tabla intermedia pero el problema que tengo es que no puedo ponerle el identity a la nueva tabla y no encuentro por ningun lado como hacerlo por script la tabla intermedia quedaria asi)

    Tabla1Tabla2
    
    id int not null, 
    
    fkcliente int not null primary key , 
    
    fkproveedor int not null primary key
    
    
    en el campo id de la tabla de relacion quiero setearle la identidad y no puedo alguien sabe como puedo solucionarlo ?. Espero haberme explicado bien.


    viernes, 14 de julio de 2017 13:40

Respuestas

  • Hola que tal, no veo desde no podes setear la identidad, pero para poder crear estas tablas con propiedad Identity y relaciones, pero es factible crear relaciones entre tablas que tienen claves autoincrementales.

    Te paso un ejemplo de T-SQL:

    CREATE TABLE dbo.Tabla1
    	(
    	idcliente int NOT NULL IDENTITY (1, 1)
    	)  ON [PRIMARY]
    GO
    ALTER TABLE dbo.Tabla1 ADD CONSTRAINT
    	PK_Tabla1 PRIMARY KEY CLUSTERED 
    	(
    	idcliente
    	) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    GO
    
    CREATE TABLE dbo.Tabla2
    	(
    	idproveedor int NOT NULL IDENTITY (1, 1)
    	)  ON [PRIMARY]
    GO
    ALTER TABLE dbo.Tabla2 ADD CONSTRAINT
    	PK_Tabla2 PRIMARY KEY CLUSTERED 
    	(
    	idproveedor
    	) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    GO
    
    
    
    CREATE TABLE dbo.Tabla1Tabla2
    	(
    	id int NOT NULL IDENTITY (1, 1),
    	idcliente int NOT NULL,
    	idproveedor int NOT NULL
    	)  ON [PRIMARY]
    GO
    ALTER TABLE dbo.Tabla1Tabla2 ADD CONSTRAINT
    	PK_Tabla1Tabla2 PRIMARY KEY CLUSTERED 
    	(
    	id
    	) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    GO
    
    ALTER TABLE dbo.Tabla1Tabla2 ADD CONSTRAINT
    	FK_TTabla1Tabla2_Cliente FOREIGN KEY
    	(
    	idcliente
    	) REFERENCES dbo.Tabla1
    	(
    	idcliente
    	) ON UPDATE  NO ACTION 
    	 ON DELETE  NO ACTION 
    	 NOT FOR REPLICATION
    
    GO
    ALTER TABLE dbo.Tabla1Tabla2 ADD CONSTRAINT
    	FK_TTabla1Tabla2_Croveedor FOREIGN KEY
    	(
    	idproveedor
    	) REFERENCES dbo.Tabla2
    	(
    	idproveedor
    	) ON UPDATE  NO ACTION 
    	 ON DELETE  NO ACTION 
    	 NOT FOR REPLICATION
    
    GO
    

    Saludos.


    Mariano K.

    viernes, 14 de julio de 2017 15:58