-
Notifications
You must be signed in to change notification settings - Fork 0
/
SQLQuery_26.sql
121 lines (107 loc) · 3.17 KB
/
SQLQuery_26.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
USE master
GO
DROP DATABASE manter_filmes
GO
CREATE DATABASE manter_filmes
GO
USE manter_filmes
GO
CREATE TABLE filmes
(
idFilme INT NOT NULL,
nomeBR VARCHAR(45) NOT NULL,
nomeEN VARCHAR(45) NOT NULL,
anoLancamento INT NOT NULL,
sinopse TEXT NOT NULL
PRIMARY KEY(idFilme)
)
GO
CREATE PROCEDURE operacao(@entrada CHAR(1), @id INT, @nomeBr VARCHAR(45), @nomeEN VARCHAR(45), @anoLancamento INT, @sinopse TEXT, @saida VARCHAR(50) OUTPUT)
AS
IF(@entrada = 'I' OR @entrada = 'i')
BEGIN
BEGIN TRY
IF(@nomeBr = '' OR @nomeEN = '')
BEGIN
RAISERROR('For input string: nomeBR or nomeEN', 16, 1)
END
ELSE
BEGIN
INSERT INTO filmes VALUES
(@id, @nomeBr, @nomeEN, @anoLancamento, @sinopse)
SET @saida = 'Filme inserido'
END
END TRY
BEGIN CATCH
IF((SELECT 1 FROM filmes WHERE idFilme = @id) = 1)
BEGIN
RAISERROR('Filme já presente no banco', 16, 1)
END
ELSE
BEGIN
RAISERROR('Error ao processar inserção', 16, 1)
END
END CATCH
END
ELSE
BEGIN
IF(@entrada = 'U' OR @entrada = 'u')
BEGIN
BEGIN TRY
IF(@nomeBr = '' OR @nomeEN = '')
BEGIN
RAISERROR('For input string: nomeBR or nomeEN', 16, 1)
END
ELSE
BEGIN
UPDATE filmes
SET nomeBR = @nomeBr, nomeEN = @nomeEN, anoLancamento = @anoLancamento, sinopse = @sinopse
WHERE idFilme = @id
SET @saida = 'Filme atualizado'
END
END TRY
BEGIN CATCH
IF((SELECT 1 FROM filmes WHERE idFilme = @id) = 1)
BEGIN
RAISERROR('Error ao processar atualização', 16, 1)
END
ELSE
BEGIN
RAISERROR('Filme não encontrado', 16, 1)
END
END CATCH
END
ELSE
BEGIN
IF(@entrada = 'D' OR @entrada = 'd')
BEGIN
BEGIN TRY
DELETE filmes
WHERE idFilme = @id
SET @saida = 'Filme deletado'
END TRY
BEGIN CATCH
IF((SELECT 1 FROM filmes WHERE idFilme = @id) = 1)
BEGIN
RAISERROR('Error ao processar deleção', 16, 1)
END
ELSE
BEGIN
RAISERROR('Filme não encontrado', 16, 1)
END
END CATCH
END
ELSE
BEGIN
RAISERROR('Operação inválida', 16, 1)
END
END
END
GO
INSERT INTO filmes VALUES
(1, '123', '321', 2000, 'Teste 1'),
(2, 'sas', 'sas', 2019, 'Teste 2'),
(3, 'vertigo', 'vertigo, the end', 2010, 'Teste 3')
GO
SELECT * FROM filmes
DELETE FROM filmes