我试图对其他表上的更新触发的表执行更新,并收到错误消息:
更新或删除的行值不会使行唯一,也不会改变多行。
例如我有这个表:
table_1
===========
int id (primary_key,identity)
nchar(10) state_name
table_2
===========
int number
更新table_2后,我想将列'state_name'中的所有值更改为'false'
create trigger tr on table_2
after update
as
update table_1 set state_name = 'false'
当我尝试更新table_2时,收到错误消息。 有办法绕过这个限制吗?
答案 0 :(得分:1)
在Table_2中添加主键约束(例如auto inc no),你会没事的。
答案 1 :(得分:1)
create table table_1(id int identity(1,1)primary key,state_name char(10))
create table table_2(number int) 去
更新后在table_2上创建触发器tr,因为更新table_1设置state_name ='false' 去
插入table_1选择'true' insert table_2 select 1
去
更新table_2 set number = 2
从table_1中选择*
从table_2中选择*
您使用的是哪个版本?它在SQL 2K8& amp; SQL 2K5。再次检查你的代码。