Sql 触发器不工作,因为复制表中的数据类型已弃用
我的SQLServer2005数据库中有一个表,其中有一个数据类型为NTEXT的字段。此表是在合并复制中复制的,其中包含大量SQLCE订阅 我已尝试在此表中添加插入时的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)。但是如果不重新创建快照,我就无
触发器,以处理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
、文本
或图像
数据