Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Dúvida no Ex. 12 da Aula 1 - Consultando os dados

Estou usando o SQL Server, pois já o tinha instalado na minha máquina. Quando inseri TRUE no campo recebido, deu um erro "Invalid column name 'TRUE'." Alguém sabe me explicar porque isso aconteceu?

7 respostas

Larissa,

Pode colocar o código do insert que você usou aqui?

Oi Arthur, eu usei o seguinte código:

INSERT INTO TB_COMPRAS (preco, data, descricao, recebido) VALUES (100.0, '2010-09-08', 'COMIDA', TRUE)

O código do insert está certo, o que deve estar te dando problema é o valor true.

Qual é o tipo da coluna recebido na sua tabela?

Tem como colar aqui o código que você usou para criar a tabela? (CREATE TABLE ...)

Primeiro coloquei o recebido como tipo tinyint, depois como bit... Não sei direito qual seria adequado por ser boolean...

solução!

Então provavelmente é isso. O melhor tipo nesse caso é o bit. Segundo a MSDN:

https://msdn.microsoft.com/en-us/library/ms177603.aspx

Você pode usar TRUE e FALSE, mas tem que ser STRING, tente o código abaixo:

INSERT INTO TB_COMPRAS (preco, data, descricao, recebido) VALUES (100.0, '2010-09-08', 'COMIDA', 'TRUE')

Segundo a documentação, você pode também usar 0 (Zero) para false e 1 para true.

Tente de novo :)

Funcionou \o/

Era o tipo do dado mesmo... tem que ser tipo bit.

Obrigada pela ajuda ;)

create table compras (id int auto_increment primary key, valor double,data date,descricao varchar(255), cp_recedida boolean);

insert into COMPRAS (valor, data, observacoes, recebido) values (200, null, 'MATERIAL ESCOLAR', TRUE);

Cuidado com o case sensitive, no caso acima esse é o problema. O nome do objeto/entidade/tabela ou como queiram chamar está em upercase já a tabela foi criada em smallcase.