Tim*_*ter 1 t-sql triggers group-by sql-server-2005
我正在使用插入/更新触发器来更新第二个表的列Price.
插入触发器似乎工作得很好,但是当我尝试更改SSMS中的单个记录时,我收到一个错误:
更新或删除的行值不会使行唯一,也不会更改多行(2行).
这是我的更新触发器:
CREATE TRIGGER [dbo].[trgUpdateMasterData] ON [dbo].[tabSparePartMasterData_Temp]
AFTER UPDATE
AS
UPDATE tabSparePart
SET Price = MD.Price
FROM tabSparePart INNER JOIN
(
SELECT inserted.[Material Number (SAP)] AS MaterialNumber, inserted.Price
FROM inserted
GROUP BY [Material Number (SAP)], inserted.Price
) MD
ON tabSparePart.SparePartName = MD.MaterialNumber
Run Code Online (Sandbox Code Playgroud)
我需要按Material-Number分组,因为有多余的行插入到表中tabSparePartMasterData_Temp,我只用于更新Sparepart-Price tabSparePart.但我假设小组将整理重复(任何重复的价格相同).
插入/更新的记录可能MaterialNumber不可用tabSparepart.在这种情况下,应该"跳过"此记录.是否INNER JOIN考虑到了这一点?
尝试添加SET NOCOUNT ON触发器
此错误看起来不像SQL错误,我猜测客户端代码被触发器中的第二次更新搞糊涂了.
编辑:这个错误可能是由SSMS中的数据网格视图愚蠢造成的.
这不是我想的SQL消息:它是一个SSMS是愚蠢的消息
看到这些都说"学会写SQL"
说,有一篇关于SQL Server 2005中的错误的知识库文章 ......
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |