Dúvida em Triggers com atribuição de Valores

18/08/2009

0

Saudações,

Trabalho há algum tempo com Firebird e agora estou me aventurando com o SQL Server 2008. Minha dúvida é a seguinte no Firebird eu consigo atribuir a um campo o valor de outro, exemplo (Inserção):

Begin

New.Total = New.Quantidade * New.Preco;

end;

Perguntinha, há alguma maneira de fazer essa atribuição no SQL Server dentro de uma Trigger?

Valeu.


Dessis Empresarial

Dessis Empresarial

Responder

Posts

19/08/2009

Emerson Nascimento

o SQL Server cria tabela temporárias para suas manipulações.

se estiver acontecendo uma inclusão, a tabela é INSERTED
se estiver acontecendo uma alteração, a tabela é UPDATED
se estiver acontecendo uma exclusão, a tabela é DELETED

basta manipular o(s) registro(s) destas tabelas.


Responder

20/08/2009

Dessis Empresarial

Tentei fazer, veja o erro que ocorreu:

CREATE TRIGGER [dbo].[CFG01O010_tri] ON [dbo].[CFG01O010]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN
  update inserted set f001 = f999;
END
GO

As tabelas lógicas INSERTED e DELETED não podem ser atualizadas.


O problema que eu precisava fazer isso no Insert;


Responder

20/08/2009

Emerson Nascimento

tente:
update CFG01O010 set f001 = f999 where CampoID = inserted.CampoID

lembre-se que a tabela inserted pode retornar vários registros ao mesmo. para evitar qualquer problema, faça a alteração com auxílio de cursores, alterando assim todos os registros da tabela [i:b8c0a41df4]inserted[/i:b8c0a41df4].


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