【发布时间】:2021-03-12 21:27:34
【问题描述】:
我有一个在 SQL Server 中的两个表之间进行联合的视图。我正在使用 INSTEAD OF UPDATE 触发器来更新基表。我编写了这段代码来更新基表中特定行上的 Column1,但出现错误:
IF UPDATE(Column1)
BEGIN
UPDATE BaseTable
SET Column1 = I.Column1
FROM inserted I INNER JOIN (SELECT * FROM Table1 UNION ALL SELECT * FROM Table2) AS BaseTable
ON I.UniqueID = BaseTable.UniqueID
WHERE BaseTable.UniqueID = I.UniqueID
END
ERROR: Derived table 'Base' is not updatable because a column of the derived table is derived or constant.
【问题讨论】:
-
UniqueID在两张表之间真的是独一无二的。不仅“现在使用当前数据是唯一的”,而且保证是唯一的?如果它们是身份列,那么你已经走上了疯狂的道路。 -
这些是在整个数据库中生成的唯一字符串。
-
你可能想看看Partitioned Views
标签: sql sql-server view