Escolher um só dado para ser deletado no SQL server?
Fala pessoa, blz?!
Alguém sabe como usar o case para escolher um só dado para ser deletado no SQL server?
Dentro de um procedimento que já usei o if else ao invés de apagar uma linha inteira de uma tabela quero que escolha uma célula apenas para ser apagada.
Alguém sabe como usar o case para escolher um só dado para ser deletado no SQL server?
Dentro de um procedimento que já usei o if else ao invés de apagar uma linha inteira de uma tabela quero que escolha uma célula apenas para ser apagada.
create procedure sp_cadastro_album @opcao INT=1, @idalbum int , @artista varchar (15)= NULL, @TituloAlbum varchar (15) =NULL, @classificacao int, @condicao varchar(25) AS Begin if (@opcao=1) Begin insert into album(artista,tituloAlbum,classificacao,condicao) values (@artista, @TituloAlbum,@classificacao,@condicao) SELECT @@IDENTITY AS Retorno End else if (@opcao=2) begin Update album set artista=@artista, tituloAlbum=@TituloAlbum ,classificacao=@classificacao condicao=@condicao where idalbum=@idalbum SELECT @idalbum AS Retorno end else if (@opcao=3) begin delete from Album where idAlbum=@idalbum SELECT @idalbum AS Retorno end else Begin RAISERROR ('AÇAO INVALIDA BITCH',14,1) END end
Celso
Curtidas 0
Respostas
Emerson Nascimento
07/05/2019
você quer limpar o conteúdo de um campo, é isso?
se for, você pode mandar mais um parâmetro:
daí, quando você mandar opção 3 e campo='', a procedure apagará o registro, porém se você mandar opção 3 e indicar um campo, a procedure irá limpar o conteúdo do campo.
se for, você pode mandar mais um parâmetro:
create procedure sp_cadastro_album @opcao INT=1, @idalbum int, @artista varchar(15) = NULL, @TituloAlbum varchar(15) = NULL, @classificacao int, @condicao varchar(25), @campo varchar(25) = '' AS Begin declare @strSQL varchar(200) if (@opcao=1) begin insert into album(artista,tituloAlbum,classificacao,condicao) values (@artista, @TituloAlbum,@classificacao,@condicao) SELECT @@IDENTITY AS Retorno end else if (@opcao=2) begin Update Album set artista=@artista, tituloAlbum=@TituloAlbum ,classificacao=@classificacao, condicao=@condicao where idalbum=@idalbum SELECT @idalbum AS Retorno end else if (@opcao=3) begin if (@campo = '') delete from Album where idAlbum=@idalbum else exec('update Album set '+@campo+'=null where idAlbum=@idalbum') SELECT @idalbum AS Retorno end else begin RAISERROR ('AÇAO INVALIDA',14,1) end end
daí, quando você mandar opção 3 e campo='', a procedure apagará o registro, porém se você mandar opção 3 e indicar um campo, a procedure irá limpar o conteúdo do campo.
GOSTEI 0