1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Transact SQL, duvida...

Discussão em 'Programação' iniciada por xvarts, 9 de Junho de 2007. (Respostas: 2; Visualizações: 646)

  1. Olá a todos.

    Estou a fazer um trabalho de bases de dados em transact SQL e estou a apanhar um erro e não sei o que se está a passar.

    então é o seguinte, tenho o seguinte codigo dentro de um procedimento armazenado:

    *******************************************************************
    declare @LinkedServer varchar(100)
    SELECT @LinkedServer=LinkServer
    From ViewDepartamento
    Where codigo = @codDep declare @estado varchar(10)
    set @estado = 'Disponivel'
    EXEC('INSERT INTO '+ @LinkedServer
    +'.db_si_ap.dbo.ViewExemplar
    Values('[email protected]+','+ @estado+','+ @isbn+')'
    )
    *******************************************************************
    e kuando mando executar o procedimento o sgbd da-me o seguinte erro:

    Erro:
    Msg 128, Level 15, State 1, Line 1
    The name "Disponivel" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.


    Alguem sabe o que se está a passar, para apanhar com este erro??

    Se aguem me poder ajudar agradeço.

    Obrgado a todos.
     
  2. shello

    shello Moderador
    Staff Member

    Não sabendo nada de transact SQL (nem conhecia a coisa...), e tentando adivinhar... Por interpretação do erro, 'Disponivel' deve ser o nome de um campo nessa tabela... E pelo que o erro diz, não podes usar :\.
     
  3. legerdemain

    legerdemain Power Member

    que giro, isto parece-me o trabalho de SI2 :-D

    eu diria que o problema está em
    Código:
        Values([email protected]+[B][SIZE="5"]','+ @estado+','[/SIZE][/B]+ @isbn+')' 
    
    muito provavelmente tens que meter mais uns apóstrofos para forçar aquilo como texto
    não sei como é com sql mas se for como nas linguagens normais então deve ser algo do tipo ',\''
     

Partilhar esta Página