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

SQL Server

18/08/2009

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

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

18/08/2009

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.


GOSTEI 0
Dessis Empresarial

Dessis Empresarial

18/08/2009

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;


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

18/08/2009

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].


GOSTEI 0
POSTAR