【发布时间】:2011-03-11 20:03:19
【问题描述】:
我收到错误“无法在 'inserted' 和 'deleted' 表中使用 text、ntext 或 image 列”,因为原始表中有 ntext 字段,所以我已将触发器附加到。
这里有一个解决方案:http://lazycodeprogrammer.blogspot.com/2009/08/how-to-use-inserteddeleted-with.html
但是原始(未修改)查询已经足够复杂了。我应该写什么来代替 SELECT * FROM INSERTED,使用 JOIN 操作符,因为它是推荐的?
【问题讨论】:
-
你想做什么?你能告诉我们你的触发器(至少是它最相关的部分)吗?你的问题不是很清楚......
-
我正在尝试在触发器中插入行。如果我执行“SELECT * FROM INSERTED”查询,我会收到“不能在 'inserted' 和 'deleted' 表中使用 text、ntext 或 image 列”错误。我知道为什么:因为原始表包含 ntext 字段。我应该如何修改我的查询来解决这个问题?
-
@noober,没有你显示任何 SQL,任何人都可以说只是实现你在链接中发布的内容。
-
文章中介绍了所有的SQL。 [UPDATE t SET t.newtext = i.text FROM tbl_Dest t, INSERTED i, DELETED d WHERE t.PK_ID = i.PK_ID] 修改为 [UPDATE t SET t.newtext = s.text FROM tbl_Dest t, tbl_Source s JOIN INSERTED i ON s.PK_ID = i.PK_ID,已删除 d 其中 t.PK_ID = s.PK_ID]。我只是想了解,诀窍是什么。
标签: sql-server triggers