Ir para conteúdo

Arquivado

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

tatiane_barreira

[Resolvido] Função com retorno @@ROWCOUNT

Recommended Posts

Boa tarde....

 

Preciso fazer uma função que retorne o valor do @@ROWCOUNT, estou tentando fazer assim ...

CREATE FUNCTION FUNC_SORT()

RETURNS INT
AS
BEGIN

DECLARE @QTD INT

select A1_COD, A1_XRANK1 from SA1010
WHERE A1_XSAC = 'S' AND A1_MSBLQL <> '1' 
AND A1_CONTPLA NOT IN ('S','F') 
AND A1_STATUS = '1'
AND (A1_XSACTER IN ('S', 'T'))

IF @@ROWCOUNT > 0 Then
@QTD = @@Rowcount;
end if;

RETURN (@QTD)
END

Estou muito longe de conseguir ?

Alguém pode me ajudar !

Compartilhar este post


Link para o post
Compartilhar em outros sites

tatiane,

 

o @@ROWCOUNT já é uma função. Qual o contexto do seu problema, pois o que esta fazendo é um @@ROWCOUNT mais complicado somente.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

sua função esta com a condição IF escrita incorretamente, no sql server não tem then e end if, exemplo:

IF Boolean_expression 
    { sql_statement | statement_block } 
[ ELSE 
    { sql_statement | statement_block } ] 

Obs.: lembrando que se tiver mais de uma linha dentro do If ou ELSE terá que usar o BEGIN END

 

A atribuição de variáveis deve conter o comando SET

ex.

SET @QTD = @@Rowcount

 

Talvez o uso do COUNT no seu select já resolva, sem a necessidade de cria variavel adicional:

CREATE FUNCTION FUNC_SORT()

RETURNS INT
AS
BEGIN

return (select COUNT(*) from SA1010
WHERE A1_XSAC = 'S' AND A1_MSBLQL <> '1' 
AND A1_CONTPLA NOT IN ('S','F') 
AND A1_STATUS = '1'
AND (A1_XSACTER IN ('S', 'T')) )

END

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente com o Count resolveu,

Eu estva usando o rowcount, pq precisava do total de linhas afetadas, para usar como um parametro em uma função de randomizar noo VB.net.

Obrigada pelo auxilio...eriva_br tbm pela correção de erros de sintaxe

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.