• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skcratch

Sql - Ajuda em Stored Procedure

5 mensagens neste tópico

Viva!

Estou a tentar criar uma stored procedure simples que verifique se um nome, que é passado como parâmetro, existe na tabela Pessoa.

USE [Aula 6]
GO

CREATE PROC spDeleteActor
@Nome NVARCHAR(200)
AS
IF((SELECT IdPessoa FROM Pessoa WHERE Nome = @Nome) = NULL)
BEGIN
	print 'A pessoa nao existe' 
END
ELSE
BEGIN
	print 'A pessoa existe'
END

GO

EXEC spDeleteActor 'Rui'

As minhas dúvidas residem na instrução IF, porque não sei qual é o valor de retorno da instrução SELECT caso a pessoa que procuro não exista. De notar o nome (Rui) que é passado na chamada da stored procedure não existe na base de dados e que é sempre imprimido 'A pessoa existe'.

Grato desde já por qualquer ajuda,

Cumps!

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Para resolveres este tipo de questões o mais fácil é usares as funções EXISTS / NOT EXISTS. Estas funções retornam um boleano, true caso exista algum tuplo e false caso não exista.

Para o teu SP ficaria assim:

IF(NOT EXISTS(SELECT IdPessoa FROM Pessoa WHERE Nome = @Nome))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma técnica comum é fazer um count, se retornar zero, então não existe. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma técnica comum é fazer um count, se retornar zero, então não existe. :)

Um count para verificar se existe algo? Se existe um função própria para isso porque complicar? ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora