Usuário com melhor resposta
Procedure

Pergunta
-
Respostas
-
CREATE PROCEDURE usp_Inserir @val1 VARCHAR(20), @val2 VARCHAR(20) AS BEGIN IF @val1 IS NULL AND @val2 IS NULL BEGIN SELECT 'Todos os paramêtros não podem ser nulos' AS 'Informações Incorretas'; END ELSE IF @val1 = '' AND @val2 = '' BEGIN SELECT 'Todos os paramêtros não podem ser nulos' AS 'Informações Incorretas'; END ELSE BEGIN //IMPLEMENTAÇÃO DO CODIGO ↓ INSERT INTO tbl (values) VALUES (values); END END GO
-
Algumas questão acerca dessa procedure....
- Não faça dois IF's para o valor null e vazio. Se for o caso, use o COALESCE() ou um ISNULL() e compare com o vazio.
- Não retorne a procedure com um SELECT. use o RAISERROR - ou o THROW, se estiver usando o SQL Server 2012.
- Se o campo já não permite nulo, você não precisa 'validar' com os IF's... Você pode realizar simplesmente o insert e fazer um TRY / CATCH, jogando a exceção para quem o chamou.
Espero que ajude.
[]'s!
/* Logan Destefani Merazzi - DBA | @LoganMerazzi | http://www.merazzi.eti.br
Se a resposta for útil, vote nela. Se resolveu, marque-a como resposta. */- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 22 de dezembro de 2015 12:55
Todas as Respostas
-
Oséas,
Você se referi a verificar se o campo pode aceitar valor nulo ou ficar vazio?
Ou deseja verificar se esta sendo passado através do Insert ou valor nulo?
Existe uma grande diferença entre as duas situações.
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
CREATE PROCEDURE usp_Inserir @val1 VARCHAR(20), @val2 VARCHAR(20) AS BEGIN IF @val1 IS NULL AND @val2 IS NULL BEGIN SELECT 'Todos os paramêtros não podem ser nulos' AS 'Informações Incorretas'; END ELSE IF @val1 = '' AND @val2 = '' BEGIN SELECT 'Todos os paramêtros não podem ser nulos' AS 'Informações Incorretas'; END ELSE BEGIN //IMPLEMENTAÇÃO DO CODIGO ↓ INSERT INTO tbl (values) VALUES (values); END END GO
-
Algumas questão acerca dessa procedure....
- Não faça dois IF's para o valor null e vazio. Se for o caso, use o COALESCE() ou um ISNULL() e compare com o vazio.
- Não retorne a procedure com um SELECT. use o RAISERROR - ou o THROW, se estiver usando o SQL Server 2012.
- Se o campo já não permite nulo, você não precisa 'validar' com os IF's... Você pode realizar simplesmente o insert e fazer um TRY / CATCH, jogando a exceção para quem o chamou.
Espero que ajude.
[]'s!
/* Logan Destefani Merazzi - DBA | @LoganMerazzi | http://www.merazzi.eti.br
Se a resposta for útil, vote nela. Se resolveu, marque-a como resposta. */- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 22 de dezembro de 2015 12:55
-
Algumas questão acerca dessa procedure....
- Não faça dois IF's para o valor null e vazio. Se for o caso, use o COALESCE() ou um ISNULL() e compare com o vazio.
- Não retorne a procedure com um SELECT. use o RAISERROR - ou o THROW, se estiver usando o SQL Server 2012.
- Se o campo já não permite nulo, você não precisa 'validar' com os IF's... Você pode realizar simplesmente o insert e fazer um TRY / CATCH, jogando a exceção para quem o chamou.
Espero que ajude.
[]'s!
/* Logan Destefani Merazzi - DBA | @LoganMerazzi | http://www.merazzi.eti.br
Se a resposta for útil, vote nela. Se resolveu, marque-a como resposta. */Oséas,
Além das orientações do Logan, se você estiver utilizando o SQL Server 2012 ou superior, poderá utilizar o comando IIF dentro de um Select.
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]