我在Access中创建了一个查找表,以提供列的可能值.现在我需要使用转换列之前的数据更新此列.我无法找出一个可行的SQL查询.我不断收到错误"UPDATE或DELETE查询不能包含多值字段".我的研究表明我只需要设置列的值,但这总是更新0条记录:
UPDATE [table_name] SET [column_name].Value = 55 WHERE [table_name].ID = 16;
Run Code Online (Sandbox Code Playgroud)
我知道如果我将其更改为更新文本列,此查询将起作用,因此这只是一个问题.
Han*_*sUp 15
如果要向多值字段添加值,请使用追加查询.
INSERT INTO table_name( [column_name].Value )
VALUES (55)
WHERE ID = 16;
Run Code Online (Sandbox Code Playgroud)
如果要更改多值字段中存在的一个特定值,请使用UPDATE语句.例如,要将55更改为56 ...
UPDATE [table_name]
SET [column_name].Value = 56
WHERE [column_name].Value = 55 And ID = 16;
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅在查询中使用多值字段.
我已经弄清楚了!这肯定是违反直觉的!您必须使用INSERT语句进行更新。
-- Update a record with a multi-valued field that has no value
INSERT INTO [table_name] ( [[column_name].[Value] )
VALUES(55)
WHERE [table_name].ID = 16;
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为我期待一个UPDATE语句。我认为它实际上是将记录插入到一个隐藏表中,该表用于将多个值与此列相关联。