我正在尝试在 SQL 表中找到执行以下操作的方法,其中 a 是位数据类型
您可以使用 INSTEAD OF 触发器。这是一个 Highlander 型触发器,这意味着表上只能有一个(对于每个操作)。
CREATE TRIGGER MyTable_SetBitColumn ON MyTable INSTEAD OF UPDATE
AS BEGIN
UPDATE MyTable
SET BitColumn = i.BitColumn
FROM (SELECT TOP 1 * FROM inserted) i
END
您的意思是要切换该列的所有值吗?如果是这样:
UPDATE table
SET BitColumn = 1 - BitColumn
怎么样
UPDATE mytable SET a=1
或
UPDATE mytable SET a=0
如果表中的所有行都具有相同的值,则不要将此列存储在此表中。将其存储在另一个具有 1 行的表中。然后,您可以在执行查询时交叉连接到单行表。
UPDATE table_name SET column_name=0;
UPDATE table_name SET column_name=1;