none
Erro ao inserir dados na tabela RRS feed

  • Pergunta

  •  

    Pessoal, boa tarde!

     

    Estou começando na area de BD e estou com umas duvidas em um trabalho que tenho que fazer para a faculdade.

     

    O próposito é você criar um BD inserir 2 TABELAS, uma sendo com LETRAS e outra NUMERO INTEIROS, então fiz o seguinte em um script SQL:

     

    CREATE DATABASE PIM

    CREATE TABLE TB_NOME

    (

    NOME VARCHAR(80) NOT NULL,

    PRIMARY KEY (NOME)

    );

    CREATE TABLE TB_RA

    (

    RA TINYINT NOT NULL,

    PRIMARY KEY (RA),

    NOME VARCHAR(80) NOT NULL,

    FOREIGN KEY (NOME) REFERENCES TB_NOME(NOME)

    );

    INSERT INTO TB_RA VALUES (18965)

     

     

    Porém quando o script tenta inserir o campo os numeros na tabela a seguinte mensagem aparece de erro:

     

    Msg 213, Level 16, State 1, Line 17

    Erro de inserção: o nome da coluna ou o número de valores fornecidos não corresponde à definição da tabela.

     

     -------

     

    Alguem pode me ajudar a enteder o porque deste erro? Pois o campo está criado como TINYNT (Numero inteiros) e mesmo assim está dando erro.

     

    Valeu.

     

    sexta-feira, 5 de outubro de 2007 18:26

Respostas

  •  

    veja que o problema nao e  so o tipo do dado nao, vc. esta passando somente um valor para uma tabela que tem 2 campos, deveria ser assim

     

    o tinunt so vai ate 255  troque para int 18965

     

    insert into TB_RA (RA) Values (123) ou

     

    insert into TB_RA values (123,'marcelo')

     

    Abs;

     

     

    • Marcado como Resposta Richard Juhasz quarta-feira, 8 de agosto de 2012 16:44
    segunda-feira, 8 de outubro de 2007 10:47
  • Void,

     

    Isso mesmo, o Marcelo esta correto.

     

    Ao invês de utilizar um tintyint, já pensou em utilizar smallint!!!

     

    Outra coisa, quando você deseja inserir valores em uma table especificando que um determinado campo não deverá aceitar valores Null, é necessário declarar um valor para este campo no comando Insert.

    • Marcado como Resposta Richard Juhasz quarta-feira, 8 de agosto de 2012 16:44
    segunda-feira, 8 de outubro de 2007 13:08
    Moderador

Todas as Respostas

  •  

    veja que o problema nao e  so o tipo do dado nao, vc. esta passando somente um valor para uma tabela que tem 2 campos, deveria ser assim

     

    o tinunt so vai ate 255  troque para int 18965

     

    insert into TB_RA (RA) Values (123) ou

     

    insert into TB_RA values (123,'marcelo')

     

    Abs;

     

     

    • Marcado como Resposta Richard Juhasz quarta-feira, 8 de agosto de 2012 16:44
    segunda-feira, 8 de outubro de 2007 10:47
  • Void,

     

    Isso mesmo, o Marcelo esta correto.

     

    Ao invês de utilizar um tintyint, já pensou em utilizar smallint!!!

     

    Outra coisa, quando você deseja inserir valores em uma table especificando que um determinado campo não deverá aceitar valores Null, é necessário declarar um valor para este campo no comando Insert.

    • Marcado como Resposta Richard Juhasz quarta-feira, 8 de agosto de 2012 16:44
    segunda-feira, 8 de outubro de 2007 13:08
    Moderador