我有一张没有主键的表。 这是我无法控制的,我无法改变它。
我需要添加一个更新一列的触发器。有没有主键的方式?
如果需要:
update myTable
set someField = someValue
where myTable.pkID = inserted.pdID
但是,我没有主键,所以我不知道怎么做where子句。
答案 0 :(得分:0)
您本身不必拥有正式的主键,但您需要一些值组合来识别受影响的记录 - 即使这是表中的每一列:
UPDATE myTable
SET someField = someValue
FROM myTable INNER JOIN inserted ON
myTable.[col1] = inserted.[col1]
AND myTable.[col2] = inserted.[col2]
AND myTable.[col3] = inserted.[col3]
--etc
如果你没有一些独特的价值观组合,我担心你会对这种做法感到不快。