Início > SQL Server > INSTEAD OF UPDATE SQL 2005

INSTEAD OF UPDATE SQL 2005

Estava passando por um problema. Precisava criar uma trigger no SQL 2005 que verificava se um campo do tipo “text” tinha sido alterado. Estava recebendo o seguinte erro:

“Cannot use text, ntext, or image columns in the ‘inserted’ and ‘deleted’ tables.”

Procurando na internet encontramos que é possível sobrescrever o método de update criando uma trigger “INSTEAD OF UPDATE”.

Ela ficou assim:

CREATE TRIGGER [dbo].[TrProdutoCampoValorUpdate]

ON [dbo].[ProdutoCampoValor]

INSTEAD OF UPDATE

AS

UPDATE ProdutoCampoValor   SET

IdProduto = (SELECT IdProduto FROM Inserted),

IdCampo = (SELECT IdCampo FROM Inserted),

IdCampoValor = (SELECT IdCampoValor FROM Inserted),

Texto = (SELECT Texto FROM Inserted)

WHERE IdProdutocampoValor = (SELECT IdProdutocampoValor FROM Inserted)

IF (UPDATE (Texto))

BEGIN

DECLARE @oldValue nvarchar(max)

DECLARE @newValue nvarchar(max)

SET @oldValue = (SELECT CONVERT(nvarchar(max), Texto) FROM Deleted)

SET @newValue = (SELECT CONVERT(nvarchar(max), Texto) FROM Inserted)

IF (@oldValue != @newValue)

BEGIN

SET NOCOUNT ON;

DELETE ProductFieldIntegration

FROM ProductFieldIntegration AS a

INNER JOIN INSERTED AS b ON a.ProductId = b.IdProduto AND a.FieldId =b.IdCampo

INSERT INTO ProductFieldIntegration (ProductId,FieldId)

SELECT IdProduto , IdCampo FROM INSERTED

GROUP BY IdProduto , IdCampo

END

END

Mais informações em http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=148387.

Anúncios
Categorias:SQL Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: