0

我的 SQL Server 2005 数据库中有一个表,其中有一个数据类型为 NTEXT 的字段。该表在具有大量 SQLCE 订阅的合并复制中进行复制。

我试图在ON INSERT这个表中添加一个触发器来处理 NTEXT 字段。但我得到了这个错误:

Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.

在我的研究中,我发现一些帖子不推荐使用 NTEXT,我应该更改为 NVARCHAR(MAX)。但是如果不重新创建快照,我就无法做到这一点,这对于使用设备的人来说是一个相当大的问题(因为数据量和时间)。

插入触发器是否有解决方法来处理数据类型?

这是引发错误的地方:

DECLARE c1 CURSOR FOR SELECT ControlValue FROM INSERTED
4

1 回答 1

1

您可以通过从基础表中读取数据并加入 INSERTED 来做到这一点。

这是解决方法:

DECLARE c1 CURSOR FOR SELECT t.ControlValue 
from INSERTED i 
  INNER JOIN TableName t on i.PrimaryKey = t.PrimaryKey

本质上,您需要将insertedand/ordeleted伪表连接到基础表中,并从基础表中读取NTEXT, TEXTorIMAGE数据。

于 2012-10-20T09:36:28.823 回答