BDRevistas
BancoDeDados.sql
—
SQL code,
4 kB (4861 bytes)
Conteúdo do arquivo
CREATE DATABASE ProjetoDI
GO
USE ProjetoDI
GO
CREATE TABLE Pessoa
(
IDPessoa int IDENTITY (1,1) NOT NULL,
Nome varchar(50) NULL,
DataNascimento datetime NULL,
Sexo char(1) NULL,
CONSTRAINT PK_Pessoa PRIMARY KEY CLUSTERED (IDPessoa ASC)
)
CREATE TABLE Revista
(
RevistaID CHAR(10) not null primary key,
Titulo varchar(30) not null,
Ano tinyint not null,
Edicao tinyint not null,
Capa varchar(35) not null,
Publicador varchar(30) not null,
Valor decimal(12,2)
)
GO
CREATE TABLE Sumario
(
SumarioID int identity(1,1) not null primary key,
RevistaID char(10),
Artigo varchar(50) not null,
Pagina tinyint not null,
Constraint fk_RevSum FOREIGN KEY (RevistaID) REFERENCES Revista(RevistaID)
)
GO
CREATE TABLE Artigo
(
ArtigoID int identity(1,1) not null primary key,
TituloArtigo varchar(50) not null,
Subtitulo varchar(35),
Resumo text
)
GO
CREATE TABLE RevistaArtigo
(
RevistaID Char(10),
ArtigoID int,
Constraint FK_REVRevArtigo FOREIGN KEY (RevistaID) REFERENCES Revista(RevistaID),
Constraint FK_ArtRevistaArtigo FOREIGN KEY (ArtigoID) REFERENCES Artigo(ArtigoID)
)
GO
---Tabela Pessoa
CREATE PROCEDURE uspCadastrarPessoa
@Excluir AS BIT = NULL,
@IDPessoa AS INT = NULL,
@Nome AS VARCHAR(50) = NULL,
@DataNascimento AS DATETIME = NULL,
@Sexo AS CHAR(1) = NULL
AS
BEGIN
SET NOCOUNT ON
BEGIN TRY
BEGIN TRAN
IF (@Excluir = 1)
BEGIN
DELETE FROM Pessoa WHERE IDPessoa = @IDPessoa
END
ELSE IF (@IDPessoa IS NULL)
BEGIN
INSERT INTO Pessoa (Nome, DataNascimento, Sexo) VALUES (@Nome,@DataNascimento,@Sexo)
END
ELSE
BEGIN
UPDATE Pessoa SET Nome = @Nome,
DataNascimento = @DataNascimento,
Sexo = @Sexo
WHERE IDPessoa = @IDPessoa
END
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
SELECT ERROR_MESSAGE() AS Retorno
END CATCH
RETURN
END
GO
CREATE PROCEDURE uspConsultarPessoa
@IDPessoa AS INT = NULL,
@Nome AS VARCHAR(50) = NULL,
@DataNascimento AS DATETIME = NULL,
@Sexo AS CHAR(1) = NULL
AS
BEGIN
SELECT IDPessoa, Nome, DataNascimento, Sexo,
CASE WHEN Sexo = 'F' THEN 'FEMININO' ELSE 'MASCULINO' END AS SexoDesc
FROM Pessoa
WHERE ((IDPessoa = @IDPessoa) OR (@IDPessoa IS NULL)) AND
((Nome LIKE '%' + @Nome + '%') OR (@Nome IS NULL)) AND
((DataNascimento = @DataNascimento) OR ( @DataNascimento IS NULL)) AND
((Sexo = @Sexo) OR (@Sexo IS NULL)) AND
((@IDPessoa IS NOT NULL)OR(@Nome IS NOT NULL) OR (@DataNascimento IS NOT NULL)OR(@Sexo IS NOT NULL))
END
-----------------------------------------------------------------------------------
CREATE PROCEDURE uspCadastrarRevista
@Excluir AS BIT = NULL,
@RevistaID AS CHAR(10) = NULL,
@Titulo AS VARCHAR(30) = NULL,
@Ano AS TINYINT = NULL,
@Edicao AS TINYINT = NULL,
@Capa AS VARCHAR(35) = NULL,
@Publicador AS VARCHAR(30) = NULL,
@Valor AS DECIMAL(12,2) = NULL
AS
BEGIN
SET NOCOUNT ON
BEGIN TRY
BEGIN TRAN
IF (@Excluir = 1)
BEGIN
DELETE FROM Revista WHERE RevistaID = @RevistaID
END
ELSE IF (@RevistaID IS NULL)
BEGIN
INSERT INTO Revista (RevistaID, Titulo, Ano, Edicao, Capa, Publicador, Valor)
VALUES (@RevistaID,@Titulo,@Ano,@Edicao,@Capa,@Publicador,@Valor)
END
ELSE
BEGIN
UPDATE Revista SET Titulo = @Titulo,
Ano = @Ano,
Edicao = @Edicao,
Capa = @Capa,
Publicador = @Publicador,
Valor = @Valor
WHERE RevistaID = @RevistaID
END
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
SELECT ERROR_MESSAGE() AS Retorno
END CATCH
RETURN
END
GO
CREATE PROCEDURE uspConsultarRevista
@RevistaID AS CHAR(10) = NULL,
@Titulo AS VARCHAR(30) = NULL,
@Ano AS TINYINT = NULL,
@Edicao AS TINYINT = NULL,
@Capa AS VARCHAR(35) = NULL,
@Publicador AS VARCHAR(30) = NULL,
@Valor AS DECIMAL(12,2) = NULL
AS
BEGIN
SELECT RevistaID, Titulo, Ano, Edicao, Capa, Publicador, Valor
FROM Revista
WHERE ((RevistaID = @RevistaID) OR (@RevistaID IS NULL)) AND
((Titulo LIKE '%' + @Titulo + '%') OR (@Titulo IS NULL)) AND
((Ano = @Ano) OR ( @Ano IS NULL)) AND
((Edicao = @Edicao) OR (@Edicao IS NULL)) AND
((Capa = @Capa) OR (@Capa IS NULL)) AND
((Publicador = @Publicador) OR (@Publicador IS NULL)) AND
((Valor = @Valor) OR (@Valor IS NULL))
END
