我的SQL Server 2005数据库中有一个表,其中包含一个数据类型为NTEXT的字段。此表在具有大量SQLCE订阅的合并复制中进行复制。
我尝试在此表中添加ON INSERT
触发器来处理NTEXT字段。但我得到了这个错误:
Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.
在我的研究中,我发现了一些不推荐使用NTEXT的帖子,我应该更改为NVARCHAR(MAX)。但是如果没有重新创建快照,我就无法做到这一点,对于使用这些设备的人来说这是一个非常大的问题(因为数据量和时间)。
insert-trigger是否有解决方法来处理数据类型?
这是抛出错误的地方:
DECLARE c1 CURSOR FOR SELECT ControlValue FROM INSERTED
答案 0 :(得分:1)
您可以通过读取基础表中的数据,加入INSERTED来实现此目的。
这是解决方法:
DECLARE c1 CURSOR FOR SELECT t.ControlValue
from INSERTED i
INNER JOIN TableName t on i.PrimaryKey = t.PrimaryKey
基本上,您需要将inserted
和/或deleted
伪表加入基础表并阅读NTEXT
,TEXT
或IMAGE
数据来自基础表格。