none
Store Procedure RRS feed

  • Pergunta

  • Estou tendo um probleminha na criacao de uma SP, o que acontece é o seguinte:

    Quando executo minha SP sem passar nenhuma clausula ela funciona bem, no entanto quando passo um uma determinada clausula utilizando o conteudo da variavel "@Tipo" da o seguinte erro "Invalid column name 'RE'." , porem RE é o conteudo da variavel que eu estou concatenando, quando executo a SP sem passar nenhuma condição ela funciona legal.

    segue abaixo o codigo utilizado:

    Declare @Comando_SQL nvarchar(4000),

    @Clausula_Where1 nvarchar(4000),

    @Parametros nvarchar(4000),

    @Tabela nvarchar(4000),

    @Nome_Tabela nvarchar(1000),

    @Campo nvarchar(1000),

    @Sistema as nvarchar(4),

    @TipoAgua as nvarchar(2),

    @Tipo as nvarchar(2),

    @Registros int,

    @Reg int,

    @Mes nvarchar(2),

    @Ano nvarchar(4)

    Set @Mes = '10'

    set @Ano = '2006'

    Set @Sistema = '0001'

    set @Tipo = 'RE' ***************************************************** nessa variavel me da o erro

    Set @Tabela = N'dbo.TBResultado_Analises'

    Set @Campo = N'Turbidez'

    Set @Parametros = N'@Reg int Output'

    set @Clausula_Where1 = N' Where ' + @Campo + ' >= 0 ' + ' and tipoagua = ' + @Tipo

    Set @Comando_SQL = N'SELECT @Reg = Count(' + @Campo + ') from ' + @Tabela + @Clausula_Where1

    EXECUTE SP_ExecuteSql @Comando_Sql,@Parametros,@Reg=@Registros Output

    select @Registros as Registros

    segunda-feira, 19 de março de 2007 19:50

Respostas

  • Junior boa tarde,

     

     

    Grato o problema era exatamente esse, eu estava concatenando de forma errado, valeu mesmo pela força.

     

    Obrigadao, funcionou corretamente agora.

     

    segunda-feira, 19 de março de 2007 20:59

Todas as Respostas

  • Linaldo,

    Por se tratar de uma variável que vai receber um valor caracter, tente passar este valor entre aspas.

    Faça esta pequena alteração e veja se funciona:

    Declare @Comando_SQL nvarchar(4000),

    @Clausula_Where1 nvarchar(4000),

    @Parametros nvarchar(4000),

    @Tabela nvarchar(4000),

    @Nome_Tabela nvarchar(1000),

    @Campo nvarchar(1000),

    @Sistema as nvarchar(4),

    @TipoAgua as nvarchar(2),

    @Tipo as nvarchar(2),

    @Registros int,

    @Reg int,

    @Mes nvarchar(2),

    @Ano nvarchar(4)

    Set @Mes = '10'

    set @Ano = '2006'

    Set @Sistema = '0001'

    set @Tipo = 'RE' ***************************************************** nessa variavel me da o erro

    Set @Tabela = N'dbo.TBResultado_Analises'

    Set @Campo = N'Turbidez'

    Set @Parametros = N'@Reg int Output'

    set @Clausula_Where1 = N' Where ' + @Campo + ' >= 0 ' + ' and tipoagua = '+''''+@Tipo+''''

    Set @Comando_SQL = N'SELECT @Reg = Count(' + @Campo + ') from ' + @Tabela + @Clausula_Where1

    EXECUTE SP_ExecuteSql @Comando_Sql,@Parametros,@Reg=@Registros Output

    select @Registros as Registros

    segunda-feira, 19 de março de 2007 20:12
  • Boa tarde Linaldo na verdade o problema é o citado pelo nosso amigo Junior, qdo for concatenar Strings não se esqueça das aspas para as variáveis.

     

     

    Abs

     

    Espero ter ajudado

    segunda-feira, 19 de março de 2007 20:36
  • Junior boa tarde,

     

     

    Grato o problema era exatamente esse, eu estava concatenando de forma errado, valeu emsmo pelo força.

     

    Obrigadao, funcionou corretamente agora.

     

    segunda-feira, 19 de março de 2007 20:59
  • Junior boa tarde,

     

     

    Grato o problema era exatamente esse, eu estava concatenando de forma errado, valeu mesmo pela força.

     

    Obrigadao, funcionou corretamente agora.

     

    segunda-feira, 19 de março de 2007 20:59
  • Boa Tarde Anderson,

     

    Voce esta voce amigao, segui a dica que sugerida pelo amigo Junior reforcada por voce e foi tiro e queda, funcionou corretamente.

     

    Grato

    Abração

    segunda-feira, 19 de março de 2007 21:03