none
Declaração de variável com TSQL no conteúdo RRS feed

  • Pergunta

  • Bom dia.

    Amigos,

    Dentro de uma stored procedure, em um determinado caso, existe a declaração de uma variável como varchar (100) e mais para frente do código, é feito o seguinte comando:

    SELECT @QTDERRO = COUNT(*) FROM [Servidor].[database].[dbo].tabela

    E o erro abaixo é exibido.

    Msg 203, Level 16, State 2, Procedure spNomeDaStoredProcedure, Line 51
    The name 'SELECT @QTDERRO = COUNT(*) FROM [Servidor].[database].[dbo].tabela' is not a valid identifier.

    Como resolver ou reescrever esta instrução dentro da sp para que funcione o caso acima?

    Tem como passar um tsql para dentro de uma variável e fazê-la executar sem ser via function?

    Obrigado.

    terça-feira, 6 de abril de 2010 14:23

Respostas

  • Shonuff,

    No teste abaixo funciona sem problemas, verifique se não há alguma outra instrução que esta causando este erro.

    declare @tbTeste as table (codigo int)
    insert into @tbTeste values(1)
    insert into @tbTeste values(2)
    insert into @tbTeste values(3)
    
    declare @QTDERRO varchar(100)
    
    SELECT @QTDERRO = COUNT(*) FROM @tbTeste
    
    select @QTDERRO

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta Shonuff CB terça-feira, 6 de abril de 2010 17:46
    terça-feira, 6 de abril de 2010 14:43
    Moderador

Todas as Respostas

  • Shonuff,

    No teste abaixo funciona sem problemas, verifique se não há alguma outra instrução que esta causando este erro.

    declare @tbTeste as table (codigo int)
    insert into @tbTeste values(1)
    insert into @tbTeste values(2)
    insert into @tbTeste values(3)
    
    declare @QTDERRO varchar(100)
    
    SELECT @QTDERRO = COUNT(*) FROM @tbTeste
    
    select @QTDERRO

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta Shonuff CB terça-feira, 6 de abril de 2010 17:46
    terça-feira, 6 de abril de 2010 14:43
    Moderador
  • Oi Marcelo,

    Só que no seu código, vc faz o select em uma variável, que é a tabela, mas o que eu preciso é fazer o SELECT COUNT(*) FROM TABELA e não em uma variável...e aqui que está o problema, deu erro de novo...

    Mas obrigado mesmo assim.

     

    Abraço!

    terça-feira, 6 de abril de 2010 14:51
  • Oi Marcelo,

    Só que no seu código, vc faz o select em uma variável, que é a tabela, mas o que eu preciso é fazer o SELECT COUNT(*) FROM TABELA e não em uma variável...e aqui que está o problema, deu erro de novo...

    Mas obrigado mesmo assim.

     

    Abraço!

    terça-feira, 6 de abril de 2010 14:51
  • Shonuff,
    Boa tarde!

    Teria como você postar a procedure para que possamos analisar o ocorrido? Pois conforme o exemplo do Marcelo, está correto. Ele colocou uma tabela somente como exemplo, mas abaixo ele colocou a variável para simular a sua situação.

    Aguardo sua procedure.

    Grande Abraço,
    Gabriel B Azevedo | Especializando em Engenharia de Software e Banco de Dados|
    gabriel.ccomputacao@hotmail.com
    http://gbabarroso.spaces.live.com/default.aspx


    Classifique as respostas. O seu feedback é imprescindível. Obrigado!
    terça-feira, 6 de abril de 2010 17:29
  • Marcelo, Gabriel,

     

    Obrigado, eu estava rateando.

     

    Abraço!

    terça-feira, 6 de abril de 2010 17:45
  • Marcelo, Gabriel,

     

    Obrigado, eu estava rateando.

     

    Abraço!

    terça-feira, 6 de abril de 2010 17:45