· 9 years ago · Nov 21, 2016, 11:50 AM
1create table jogo(
2 codJogo int identity primary key,
3 nomeTime1 varchar(50) not null,
4 nomeTime2 varchar(50) not null,
5 partida1 varchar(5) null,
6 partida2 varchar(5) null,
7 partida3 varchar(5) null,
8 mapa1 varchar(50) null,
9 mapa2 varchar(50) null,
10 mapa3 varchar(50) null,
11 timeVencedor varchar(50) null,
12 data datetime not null
13)
14
15create table campeonato (
16 codCampeonato int primary key identity,
17 nome varchar(200) not null,
18 dataInicio date not null,
19 dataFim date null
20)
21
22create table campeonatoJogo(
23 codCampeonatoJogo int identity primary key,
24 codCampeonato int not null,
25 codJogo int not null,
26 constraint fkCodJogo foreign key(codJogo) references jogo(codJogo),
27 constraint fkCodCampeonato2 foreign key(codCampeonato) references campeonato(codCampeonato)
28)
29
30-- Insere um jogo num determinado campeonato
31create proc insertJogo_sp
32 @nomeTime1 varchar(50),
33 @nomeTime2 varchar(50),
34 @partida1 varchar(5),
35 @partida2 varchar(5),
36 @partida3 varchar(5),
37 @mapa1 varchar(50),
38 @mapa2 varchar(50),
39 @mapa3 varchar(50),
40 @timeVencedor varchar(50),
41 @data datetime,
42 @codCampeonato int
43as
44 if not exists (select * from campeonato where codCampeonato=@codCampeonato)
45 print 'Não existe o campeonato que você deseja inserir o jogo'
46 else
47 begin
48 insert into jogo values(@nomeTime1, @nomeTime2,
49 @partida1, @partida2, @partida3,
50 @mapa1, @mapa2, @mapa3,
51 @timeVencedor, @data)
52
53 declare @codJogo int
54 /* como obter o codJogo (primary key) do jogo que eu inseri
55 para inserir na tabela campeonatoJogo?
56 * codJogo é identity, portanto não estou passando como parâmetro da stored procedure
57 */
58 select @codJogo=? from
59
60
61 insert into campeonatoJogo values(@codCampeonato, @codJogo)
62 end
63
64set @codJogo = SCOPE_IDENTITY();
65
66-- Insere um jogo num determinado campeonato
67create proc insertJogo_sp
68 @nomeTime1 varchar(50),
69 @nomeTime2 varchar(50),
70 @partida1 varchar(5),
71 @partida2 varchar(5),
72 @partida3 varchar(5),
73 @mapa1 varchar(50),
74 @mapa2 varchar(50),
75 @mapa3 varchar(50),
76 @timeVencedor varchar(50),
77 @data datetime,
78 @codCampeonato int
79as
80 if not exists (select * from campeonato where codCampeonato=@codCampeonato)
81 print 'Não existe o campeonato que você deseja inserir o jogo'
82 else
83 begin
84 insert into jogo values(@nomeTime1, @nomeTime2,
85 @partida1, @partida2, @partida3,
86 @mapa1, @mapa2, @mapa3,
87 @timeVencedor, @data)
88
89 declare @codJogo int = SCOPE_IDENTITY();
90
91 insert into campeonatoJogo values(@codCampeonato, @codJogo)
92 end