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