Validação de campo no sql

24/01/2015

tenho este código preciso saber se o usuário inserio o nome ou deixou o campo vazio, mas ela não faz o que quero, porque será?

IF ( @NomeMorador = ' ' )
BEGIN
RAISERROR('Por favor insira o nome do morador',14,1)
END

Anacleto Linux

Respostas

24/01/2015

Alan Mario

Acompanhando.
Responder Citar

24/01/2015

Ronaldo Lanhellas

Algum erro ?
Outra coisa, pode ser que o valor esteja nulo e não vazio (coisas diferentes).
Faça a checagem se o NomeMorador é nulo ou vazio e não apenas vazio.
Responder Citar

25/01/2015

Marisiana

Nos bancos que eu conheço, se utiliza IS NULL ou IS NOT NULL.
IF ( @NomeMorador IS NULL )
Responder Citar

26/01/2015

Thiago Cruz

Você tem duas opções:
1º Adicionar um IF (@NomeMorador is NULL) ou
2º Adicionar a clausula or ficando IF ( @NomeMorador = ' ' ) or ( @NomeMorador IS NULL )
Responder Citar

26/01/2015

Marisiana

Isso funciona no SQL Server?
IF ( @NomeMorador = ' ' )
Responder Citar

26/01/2015

Thiago Cruz

No que citei seria '' que representam vazio, mais
IF ( @NomeMorador = ' ' )
também funciona perfeitamente
Responder Citar

26/01/2015

Marisiana

Eu só copiei o teu código, não alterei ele...
O correto é utilizar duas aspas simples sem o espaço, mas eu achei estranho porque no PostgreSQL e no Oracle isso não funciona.
E como o Anacleto abriu essa questão, imaginei que o SQL Server também não funcionasse....
Responder Citar

26/01/2015

Thiago Cruz

No meu primeiro código utilizei aspas simples sem espaço.
Responder Citar

26/01/2015

Marisiana

Deve ser porque a fonte que é utilizada na tag para inserção de código no comentário que causa a impressão de que há um espaço mas não há....
Responder Citar

26/01/2015

Fabiano Carvalho

IF (isnull(@NomeMorador,'') in ('',' ') )
begin
raiserror('Erro',16,1)
end
Responder Citar

28/01/2015

Marisiana

Anacleto você conseguiu resolver?

Qual é o banco de dados que você está utilizando?
Responder Citar