不能在 'inserted' 表和 'deleted' 表中使用 text、ntext 或 image 列

kkkkkkkkkkkkkk123 2013-05-27 11:32:38
<<不能在 'inserted' 表和 'deleted' 表中使用 text、ntext 或 image 列>>这句错,求大牛指点一下,我需要实现的功能是在表CMD有新插入数据即使触发一个insert到表CMD1去我的代码如下
set ANSI_NULLS OFF
set QUOTED_IDENTIFIER OFF
go
ALTER TRIGGER [InsteadTrigger] on [dbo].[CMD]
for INSERT AS BEGIN INSERT INTO [dbo].[cmd1]
SELECT id,command,CMD_RES,UPDATE_FILE,FILE_EXT,FILE_PATH FROM inserted;
END;
...全文
1546 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
create table tb1 
(id int,
 UPDATE_FILE text)
 create table tb2
 (id int,
 UPDATE_FILE text)
 go
create trigger t1
on tb1
for insert
as
begin
	insert into tb2(id)
	select id from inserted
	
	update tb2
	set UPDATE_FILE=tb1.UPDATE_FILE
	from tb1
	where tb1.id=tb2.id
	end

insert into tb1
values(1,'dafhiahfauidgadig')

select * from tb1
select * from tb2
参照这个吧
Mr_Nice 2014-05-06
  • 打赏
  • 举报
回复
引用 4 楼 brave6618711 的回复:
如果在触发器中能使用,但是在inserted和deleted中无法使用,那可不可以到原表去找呢?不在inserted和deleted表找
这个可以,通过一个insert表获取ID ,再从源表中获取详细数据。
墨子宸 2014-05-06
  • 打赏
  • 举报
回复
楼主啊,你这个问题怎么解决的哈 我也遇到这个事情了 晕死了 求指教啊
kkkkkkkkkkkkkk123 2013-05-31
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
那你试试把触发器里面的select字段中, text、ntext 或 image 列的那些,用convert()来转换
我还没想过转换格式去写,感谢提醒
kkkkkkkkkkkkkk123 2013-05-31
  • 打赏
  • 举报
回复
引用 4 楼 brave6618711 的回复:
如果在触发器中能使用,但是在inserted和deleted中无法使用,那可不可以到原表去找呢?不在inserted和deleted表找
源表就是CMD,CMD表新增一条数据CMD1表也要新增一条数据,那怎么写?
brave6618711 2013-05-30
  • 打赏
  • 举报
回复
如果在触发器中能使用,但是在inserted和deleted中无法使用,那可不可以到原表去找呢?不在inserted和deleted表找
發糞塗牆 2013-05-28
  • 打赏
  • 举报
回复
那你试试把触发器里面的select字段中, text、ntext 或 image 列的那些,用convert()来转换
kkkkkkkkkkkkkk123 2013-05-28
  • 打赏
  • 举报
回复
把字段改了系统就跨了哦...难道又要改系统?没有其他的解决方案了吗?
發糞塗牆 2013-05-27
  • 打赏
  • 举报
回复
这个....微软的建议是把text/ntext类型的改为varchar(max)和nvarchar(max),前面那个两个类型存在很多问题,后续不建议使用,至于image,可以使用varbinary类型,把这些类型改掉,你的代码就不用修改了。

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧