none
Cannot insert the value NULL RRS feed

  • Pergunta

  • Pessoal seguinte.. Fiz a migração de servidor de um banco de dados e pra isso restaurei um backup em outro lugar. Fiz do jeito simples(gerei o arquivo .bak e restaurei)... 

    Tudo ocorreu bem, exceto por uma única tabela que recebo a seguinte mensagem toda vez que tento inserir uma linha:

    Cannot insert the value NULL into column 'id', table 'dbo.planos'; column does not allow nulls. INSERT fails.

    Testei fazendo o insert manual e dá o mesmo problema... O problema é como se a coluna id não fosse IDENTITY mas já olhei todas as configurações no design e ela está como IDENTITY(1,1)

    Simplesmente não sei qual outras medidas posso tomar e esse é um processo crítico.. Alguem saberia me ajudar? Muito obrigado!

    terça-feira, 17 de junho de 2014 15:07

Respostas

Todas as Respostas

  • Amigo, boa tarde.

    Tem como postar seu create table e seu insert para que possamos avaliar o problema ?

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    terça-feira, 17 de junho de 2014 15:48
  • Deleted
    terça-feira, 17 de junho de 2014 17:59
  • Meu create:

    USE [bd]
    GO
    
    /****** Object:  Table [dbo].[planos]    Script Date: 6/18/2014 12:27:26 PM ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[planos](
    	[id] [bigint] IDENTITY(1,1) NOT NULL,
    	[idUsuario] [bigint] NULL,
    	[codigoPromocional] [char](10) NULL,
    	[qtdObras] [int] NULL,
    	[qtdAdmins] [int] NULL,
    	[qtdClientes] [int] NULL,
    	[espacoDisco] [int] NULL,
    	[planoContratado] [varchar](50) NULL,
    	[valor] [float] NULL,
    	[tipoContrato] [varchar](50) NULL,
    	[dataInicio] [datetime] NULL,
    	[dataFim] [datetime] NULL,
    	[status] [int] NULL,
     CONSTRAINT [XPKplanos] PRIMARY KEY NONCLUSTERED 
    (
    	[id] 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].[planos]  WITH CHECK ADD  CONSTRAINT [R_109] FOREIGN KEY([idUsuario])
    REFERENCES [dbo].[usuarios] ([id])
    GO
    
    ALTER TABLE [dbo].[planos] CHECK CONSTRAINT [R_109]
    GO
    
    

    E o insert:

    INSERT INTO [bd].[dbo].[planos]
               ([idUsuario]
               ,[codigoPromocional]
               ,[qtdObras]
               ,[qtdAdmins]
               ,[qtdClientes]
               ,[espacoDisco]
               ,[planoContratado]
               ,[valor]
               ,[tipoContrato]
               ,[dataInicio]
               ,[dataFim]
               ,[status])
         VALUES
               (151
               ,NULL
               ,2
               ,5
               ,3
               ,1
               ,'trial'
               ,0
               ,'trial'
               ,getdate()
               ,getdate()
               ,1)

    Então em relação ao CHECKIDENT, o sql server me respondeu com:

    Checking identity information: current identity value '97', current column value '97'.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator. 

    Verifiquei que 97 é o último id inserido na tabela. Então, e o pior é que sim, tem chave estrangeira em outra tabela. 

    Não sei mais o que fazer, estou meio desesperado porque isso impacta no cadastro de novos usuários já que ao fazer um cadastro é gerado um novo plano.

    quarta-feira, 18 de junho de 2014 12:30
  • Pessoal me desculpem! 

    Vocês não vão acreditar mas o problema estava no nome do banco de dados. É que eu troquei pra mandar pra vcs, coloquei bd. Mas por exemplo, o nome era Testandoalgo e na procedure estava Testandoaalgo.. que tinha sido uma tentativa anterior de backup que deu errado. Agora, só não entendi porque que só essa procedure veio errado em um backup completo.

    De qualquer maneira MUUITO OBRIGADO. Estou muuuito aliviado já que o site em produção não estava conseguindo fazer nenhum tipo de cadastro.

    quarta-feira, 18 de junho de 2014 13:10
  • Amigo, realmente o comportamento que esta tabela está tendo não é normal.

    Por acaso você já tentou criar uma outra tabela usando o mesmo script e tentou dar esse insert ?

    Se isso funcionar, passe os dados de uma para outra e renomeie a tabela. Pelo menos os seus clientes vão poder continuar com os processos.

    Aí depois você continua os estudos pra arrumar ela.

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 18 de junho de 2014 13:26