Ir ao conteúdo
  • Cadastre-se

SQL Server SQL Server erro Mensagem 102, Nível 15, Estado 1, Linha 22 Incorrect syntaxe


AVSS

Posts recomendados

esse código dá erro no sql server 2012

 mensagem 102, nível 15, estado 1, linha -- 

incorrect sintaxe   ' , '

 


create table clientes 
(codcli int,
nome    varchar(30),
ender   varchar(40),
bairro  varchar(20),
cidade  varchar(20),
idade   int,
constraint pk_cli primary key (codcli));

create table produtos
(codprod    int,
descricao  varchar(20),
preco      numeric(9,2),
constraint pk_prod primary key (codprod));


create table pedidos
(codped    int,
codcli     int,
data       datetime,
constraint pk_ped primary key (codped)),
constraint fk_ped foreign key (codcli)
references clientes (codcli));


create table itens_pedidos
(codped    int,
codprod    int,
qtde       int,  
constraint pk_codped primary key (codped,codprod),
constraint fk_codped foreign key (codped)
           references pedidos (codped),
constraint fk_codprod foreign key (codprod)
           references produtos (codprod));
           
 
 select * from clientes;
 select * from produtos;
 select * from pedidos; 
 select * from itens_pedidos;         


insert into clientes values
('10','luis moura' ,'rua ,3' , 'jardim', 'sp' , '22'),
('20','marcos marques','rua ,1','jardim rosas', 'sbc', '29'),
('30','silvia santos','rua,7','jardim floresta', 'sjc','35'),
('40','rosa souza','rua,8','jardim margarida', 'sa','42'),
('50','alan silva','rua ,9','jardim samambaia', 'rgs', '40');


insert into produtos values
('10','calca','50.00'),
('11','camisa','30.00'),
('12','camiseta','10.00'),
('13','saia','25.00'),
('14','vestido','30.00');

 

insert into pedidos values
(1, 10,20190910),
(2,20,20191112),
(3, 30,20200615),
(4,40, 20201206),
(5, 50,20200907);

 

insert into itens_pedidos values
(100,10 ,1),
(101,20 ,3),
(102,30 ,3),
(103, 40 ,1),
(104,50,1);


select codped from pedidos;
select descricao from produtos;
select qtde from itens_pedidos; 


select *from produtos where preco between 10 and 70;


select avg (idade) as 'media de idade dos clientes' from clientes;


select avg (preco) as 'média de preços dos produtos' from produtos;


select count (*) as 'quantidade de produtos no sistema' from pedidos;


select * from clientes where cidade in ('santo andre','maua','sbc', 'scs');
 

 

alguém poderia ajudar????

 

Link para o comentário
Compartilhar em outros sites

Isso tudo é a linha 1? Quem sabe se você separar os scripts por função, eu normalmente crio um script por cada tabela, e as consultas também, a não ser que elas estejam correlacionadas, assim fica mais fácil saber onde está o erro, mas eu acredito que é na criação da tabela Pedidos

Em 16/09/2021 às 21:59, AVSS disse:

constraint pk_ped primary key (codped)),

tem um parentese a mais antes da vírgula, você está encerrando a lista de campos com este parentese.

 

Link para o comentário
Compartilhar em outros sites

@Denis Bopp create table itens_pedidos
(codped    int,
codprod    int,
qtde       int,  
constraint pk_codped primary key (codped,codprod),
constraint fk_codped foreign key (codped)
           references pedidos (codped),
constraint fk_codprod foreign key (codprod)
           references produtos (codprod));

 

Olá.

Sobre o parênteses que você comentou, ele abre lá em cima no "codped" e termina no "codprod" os parênteses antes do " ;" seria para fechar o que foi aberto acima.

 

Você poderia, por gentileza, reescrever o script do jeito que comentou que faz?

Link para o comentário
Compartilhar em outros sites

Em 16/09/2021 às 21:59, AVSS disse:

create table pedidos
INICIO ->( codped    int,
codcli     int,
data       datetime,
constraint pk_ped primary key (codped) )<- FIM,
constraint fk_ped foreign key (codcli)
references clientes (codcli));

 

Olha estas marcações que fiz, elas marcam o inicio e o fim da estrutura da tabela, o parentese que está no FIM tem de ser removido, senão vai continuar dando erro no seu código,

 

Quanto aos scripts que te falei, o que eu faço é para cada tabela eu crio um arquivo, separando cada instrução CREATE TABLE em um arquivo diferente,

pra mim funciona para organizar o, se você usa um arquivo só pra criar as tabelas, e se forem muitas ou se elas tiverem muitos campos, pode ser difícil

para achar erros, como foi pra você neste caso, assim eu rodo um arquivo por vez, e se der erro fica mais fácil procurar e encontrar onde está o problema, pois

vão ser poucas linhas de código para procurar, vou postar uma tabela que criei pra você ver:

 

este é o script da minha tabela clientes, são poucos campos, mas mesmo se forem muitos fica fácil de procurar alguma vírgula ou parentese mal colocado.

USE local;
DROP TABLE IF EXISTS clientes;
CREATE TABLE clientes(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	nome VARCHAR(40) NOT NULL,
	telefone VARCHAR(10) NOT NULL,
	endereco VARCHAR(40) NOT NULL
);

 

Outra tabela, outro arquivo:

USE local;
DROP TABLE IF EXISTS detalhe_vendas;
	CREATE TABLE detalhe_vendas(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	id_cliente INT NOT NULL, 
	id_sabor INT NOT NULL,
	CONSTRAINT FK_id_cliente_vendas FOREIGN KEY (id_cliente) REFERENCES clientes(id),
	CONSTRAINT FK_id_sabor_vendas FOREIGN KEY (id_sabor) REFERENCES vendas(id)
	ON DELETE CASCADE
	ON UPDATE CASCADE
);
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...