批改触发器:已更新或删除的行值要么不能使该行成为唯一行
修改触发器:已更新或删除的行值要么不能使该行成为唯一行
执行报错:
已更新或删除的行值要么不能使该行成为唯一行
------解决思路----------------------
你是不是一次更新了很多条数据 ?
就这一句就够了,其他的都不要
------解决思路----------------------
是不是主键重复了
------解决思路----------------------
这句话是出自微软么,越看越不懂.
bcs_ProductInfoStore 表有多少个字段, 难道更新后有两条记录的所有字段都相同了么(瞎猜了)
------解决思路----------------------
索引出问题了。
1)把 bcs_ProductInfoStore 的数据复制到另外一个表中,
2)TRUNCATE TABLE bcs_ProductInfoStore
3)再把数据复制进来。
ALTER TRIGGER Trigger_Update_PRODUCTINFO
ON [dbo].[PRODUCTINFO]
FOR UPDATE
AS
BEGIN
--定义所需变量
declare
@productId nvarchar(255),
@productName nvarchar(255)
--获取更新后的数据
select @productId = id,
@productName = productname
from inserted;
--更新库存商品信息
update bcs_ProductInfoStore
set productName = @productName,
where productID = @productId
END
GO
执行报错:
已更新或删除的行值要么不能使该行成为唯一行
------解决思路----------------------
你是不是一次更新了很多条数据 ?
就这一句就够了,其他的都不要
begin
update A
set A.productName = B.productName
from bcs_ProductInfoStore A , inserted B
where A.productID = B.productId
end
------解决思路----------------------
是不是主键重复了
------解决思路----------------------
这句话是出自微软么,越看越不懂.
bcs_ProductInfoStore 表有多少个字段, 难道更新后有两条记录的所有字段都相同了么(瞎猜了)
------解决思路----------------------
索引出问题了。
1)把 bcs_ProductInfoStore 的数据复制到另外一个表中,
2)TRUNCATE TABLE bcs_ProductInfoStore
3)再把数据复制进来。