繁体   English   中英

SQL简单更新语句

[英]SQL Simple Update Statement

我有一个名为t_genopt的简单表, t_genopt有2列: OptionsAppliesTo

运行以下查询时出现语法错误:

UPDATE
    t_genopt
SET
    t_genopt.Option = 'trial'
WHERE
    t_genopt.AppliesTo LIKE 'VCConfigs'

有问题的地方在哪里?

根据所使用的DBMS,可以保留Option关键字。 引用保留的名称。

在SQL Server和MSAccess中:

UPDATE
    t_genopt
SET
    [Option] = 'trial'
WHERE
    t_genopt.AppliesTo LIKE 'VCConfigs'

在MySQL中

UPDATE
    t_genopt
SET
    `Option` = 'trial'
WHERE
    t_genopt.AppliesTo LIKE 'VCConfigs'

option是许多数据库中的保留字。 您想对此查询进行转义。 解决方案可能是:

UPDATE t_genopt
SET [Option] = 'trial'
WHERE t_genopt.AppliesTo LIKE 'VCConfigs';

要么

UPDATE t_genopt
SET "Option" = 'trial'
WHERE t_genopt.AppliesTo LIKE 'VCConfigs';

要么

UPDATE t_genopt
SET `Option` = 'trial'
WHERE t_genopt.AppliesTo LIKE 'VCConfigs';

更好的解决方案是避免使用保留字作为列和表标识符。

取出第二个t_genopt

UPDATE
    t_genopt
SET
    [Option] = 'trial'
WHERE
    t_genopt.AppliesTo LIKE 'VCConfigs'

任何UPDATE语句只能影响一个表,并且要更新的表在UPDATESET之间标识。 无需(并且在大多数数据库系统中都是不允许的)在SET子句中分配的左侧再次指定表。

(而且,正如其他人所观察到的那样,如果列名根据您的示例为Option ,而不是根据您的叙述的Options ,则需要引用该用法)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM