Sql 触发器不工作,因为复制表中的数据类型已弃用

Sql 触发器不工作,因为复制表中的数据类型已弃用,sql,sql-server,triggers,merge-replication,Sql,Sql Server,Triggers,Merge Replication,我的SQLServer2005数据库中有一个表,其中有一个数据类型为NTEXT的字段。此表是在合并复制中复制的,其中包含大量SQLCE订阅 我已尝试在此表中添加插入时的触发器,以处理NTEXT字段。但我有一个错误: Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables. 在我的研究中,我发现有几条帖子不推荐使用NTEXT,我应该改为NVARCHAR(MAX)。但是如果不重新创建快照,我就无

我的SQLServer2005数据库中有一个表,其中有一个数据类型为NTEXT的字段。此表是在合并复制中复制的,其中包含大量SQLCE订阅

我已尝试在此表中添加插入时的
触发器,以处理NTEXT字段。但我有一个错误:

Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.
在我的研究中,我发现有几条帖子不推荐使用NTEXT,我应该改为NVARCHAR(MAX)。但是如果不重新创建快照,我就无法做到这一点,这对于使用设备的人员来说是一个相当大的问题(因为数据量和时间)

insert触发器是否有处理数据类型的变通方法

这是引发错误的地方:

DECLARE c1 CURSOR FOR SELECT ControlValue FROM INSERTED

您可以通过从基础表中读取数据,在插入时进行连接来实现这一点

这是解决方法:

DECLARE c1 CURSOR FOR SELECT t.ControlValue 
from INSERTED i 
  INNER JOIN TableName t on i.PrimaryKey = t.PrimaryKey
基本上,您需要将
插入的
和/或
删除的
伪表连接到基础表上,并从基础表读取
NTEXT
文本
图像
数据