Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AninhaCris

É necessário passar valor para variável Output?

Recommended Posts

Boa tarde!

 

Há tempos que criei a procedure abaixo no Server 2000, e agora que migramos para o Server 2012, notei que ela não estava sendo executada, pois ocorre o seguinte erro: "Procedure 'baixaCobr' expects parameter '@retorno', which was not supplied"

 

No server 2012 é necessário passarmos um valor para as variáveis output quando queremos executar uma procedure? Eu não passava valor algum no server 2000.

 

create proc baixaCobr (
@cod int,
@dt_baixa smalldatetime,
@retorno tinyint output
)


A intenção é retornar a quantidade de linhas que foram afetadas por um comando Update.

 

 

Att.,

Aninha

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A intenção é retornar a quantidade de linhas que foram afetadas por um comando Update.

 

Nestes casos, utilize a função @@ROWCOUNT

http://msdn.microsoft.com/pt-br/library/ms187316.aspx

 

Como esta migrando para o SQL2012, fica mais fácil fazer deste modo.

Cuidado com outras particularidades e diferenças nesta migração, como padronização de nomes e sintaxes não convencionais em ANSI-92

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grata, A.Jr.

 

Mas veja, vc não respondeu a dúvida. A dúvida versa sobre a exigência ou não da passagem de um valor para uma variável Output. É ou não necessário passar um valor?

Esta procedure faz tudo certinho há anos...eu coloquei apenas o início dela para saberem onde está a variável output.

 

Aproveito para perguntar: preciso disponibilizar para um usuário de outro sistema, uma procedure que faz atualizações em 3 (três) tabelas. Quando concedo a permissão de "executar" para esta procedure, eu também preciso dar permissão de "update" para cada tabela que será atualizada? Ou será que a permissão de executar para a procedure já supre tudo?

 

Aninha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com relação ao OUTPUT, vou testar no meu ambiente para lhe dar certeza, mas pelo que eu me lembre, não é necessário.

 

Aos updates nas tabelas, sim, tem que dar permissão mas tabelas também. Um meio de se fazer isso, pode ser a criação de schemas.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

A.Jr, obrigada novamente.

 

Em relação a sua afirmação "Aos updates nas tabelas, sim, tem que dar permissão mas tabelas também", eu vou testar neste final de semana.

 

Sobre as variáveis output, pelo que pesquisei, deve-se passar um valor our fixá-lo.

 

 

Aninha

Compartilhar este post


Link para o post
Compartilhar em outros sites

AninhaCris,

OUTPUT, realmente tem que colocar um valor de retorno, mas não no inicio da procedure.

Pode-se dar um select no final, não esquecendo de colocar um return (0) no final.

Não sei como esta estruturado a sua procedure.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.