Erro ao gerar query dinâmica

27/07/2007

0

Caros Colegas,
Estou a alguns dias com um problema que vem me consumindo muitas horas de trabalho. Estou desenvolvento uma trigger de auditoria para ser disparada sempre que houver uma alteração em um ou mais registros. Os dados anteriores ficam armazenados em uma tabela onde são identificadas a tabela, coluna, valor anterior, identificador do registro (coluna identity na tabela de origem), usuário, data da alteração e um campo identity que é a chave da tabela.
O meu problema esta em retornar o valor do campo identity da tabela de origem, pois estou tendo que gerar uma query dinâmica que deve retornar um valor a ser gravado em uma variavel. Como podem ver no código abaixo eu consigo o nome da coluna identity, faço a instrução que retorna o valor do campo, mas não consigo aramzenar a instrução, devido ao EXEC que não pode ser usado.

DECLARE
@idt_col varchar(40),
@sql varchar(100),
@int int

SELECT @idt_col = (select syscolumns.name
from sysobjects,syscolumns
where sysobjects.type = ´U´
and sysobjects.name = ´Teste´
and sysobjects.id = syscolumns.id
and syscolumns.status & 128 = 128)

SELECT @sql = (´SELECT ´+@idt_col+´ From Inserted´)

SELECT @int = (EXEC(@sql))

Gostaria da ajuda de vocês do forum pra conseguir solucionar esse problema.

Obrigado,

Flávio Melo


Flaviogcmelo

Flaviogcmelo

Responder

Posts

07/08/2007

Psergio.p

Esta usando o 2000 ou 2005?


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar