none
Duda modificando clave foranea por código RRS feed

  • Pregunta

  • Buenas tengo una tabla compuesta por una clave foranea compuesta por 3 campos y me falta un 4º campo , por lo que he probado la opción de modificar lo desde el visual studio y me dice este error

    Por lo que he probado de hacerlo via código

     
    
    ALTER TABLE [dbo].[Articulos] DROP CONSTRAINT [DF__Articulos__fecha__7519FFBE]
    GO
    
    /****** Object:  Table [dbo].[Articulos]    Script Date: 09/05/2017 16:47:16 ******/
    DROP TABLE [dbo].[Articulos]
    GO
    
    /****** Object:  Table [dbo].[Articulos]    Script Date: 09/05/2017 16:47:16 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[Articulos](
    	[login] [varchar](20) not NULL, 
    
    	[id] [int] IDENTITY(1,1) NOT NULL,
    	[proveedor] [int] NOT NULL,
    	[tienda] [int] NOT NULL,
    	[codigoArticulo] [varchar](20) NOT NULL,
    
     CONSTRAINT [PK_Articulos] PRIMARY KEY CLUSTERED 
    (
        [login] asc,
    	[id] ASC,
    	[proveedor] ASC,
    	[tienda] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    
    SET ANSI_PADDING OFF
    GO
    
    ALTER TABLE [dbo].[Articulos] ADD  DEFAULT (getdate()) FOR [fechaSistema]
    GO
    
    


    Pero entonces el error que recibo es este

    Mens. 3726, Nivel 16, Estado 1, Línea 3
    No se puede quitar el objeto 'dbo.Articulos'. Hay una referencia a él en una restricción FOREIGN KEY.
    Mens. 2714, Nivel 16, Estado 6, Línea 2
    Ya hay un objeto con el nombre 'Articulos' en la base de datos.

    No se muy bien como ver que tabla la está referenciando , o si mediante alguna consulta SQL puedo modificar la FK para que esté compuesta por 4 campos y no por 3 como ahora.

    Gracias,

    martes, 9 de mayo de 2017 14:52

Respuestas

  • la restricción que quitas, es de la tabla artículos, la que tienes que quitar es de la tabla que lo referencia (por ejemplo ventas, o detalle artículos o lo que sea que hace referencia a él)

    Una vez quitada esa restricción tu script debería funcionar, luego deberías añadir la restricción en la tabla en la que la has quitado


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Joyce_ACModerator martes, 9 de mayo de 2017 19:17
    • Marcado como respuesta golfgti6 martes, 9 de mayo de 2017 19:58
    martes, 9 de mayo de 2017 15:28
    Moderador
  • Saludos,

    Para ver que restricciones tiene tu tabla podrías apoyarte de: sp_help TuTabla, lo del mensaje de advertencia que te sale es porque tu management sql lo tiene configurado así, puedes cambiarlo:

    Anda a:

    Tools-> Options-> Designers

    Deshabilita:

    - Warn about tables affected

    - Prevent saving changes that require table re-creation


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Steve Morrison

    • Marcado como respuesta golfgti6 martes, 9 de mayo de 2017 19:58
    martes, 9 de mayo de 2017 15:05

Todas las respuestas

  • Saludos,

    Para ver que restricciones tiene tu tabla podrías apoyarte de: sp_help TuTabla, lo del mensaje de advertencia que te sale es porque tu management sql lo tiene configurado así, puedes cambiarlo:

    Anda a:

    Tools-> Options-> Designers

    Deshabilita:

    - Warn about tables affected

    - Prevent saving changes that require table re-creation


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Steve Morrison

    • Marcado como respuesta golfgti6 martes, 9 de mayo de 2017 19:58
    martes, 9 de mayo de 2017 15:05
  • la restricción que quitas, es de la tabla artículos, la que tienes que quitar es de la tabla que lo referencia (por ejemplo ventas, o detalle artículos o lo que sea que hace referencia a él)

    Una vez quitada esa restricción tu script debería funcionar, luego deberías añadir la restricción en la tabla en la que la has quitado


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Joyce_ACModerator martes, 9 de mayo de 2017 19:17
    • Marcado como respuesta golfgti6 martes, 9 de mayo de 2017 19:58
    martes, 9 de mayo de 2017 15:28
    Moderador