UPDATE查询中列的表名前缀

时间:2012-04-02 04:35:24

标签: mysql sql tsql postgresql mysqli

SQL中不允许更新字段的表名前缀吗?像:

UPDATE tablename 
   SET tablename.mycolums = true 
 WHERE ...

什么是 SQL 标准?

3 个答案:

答案 0 :(得分:4)

以上查询完全适用于SQL SERVER环境。

SQL语句的UPDATE标准具有以下格式:

UPDATE table_name SET column_name = value [, column_name = value ...] [WHERE condition]

但有些数据库在UPDATE语句中使用FROM时使用非标准格式:

UPDATE alias_name 
alias_name.mycolums=true
FROM tablename alias_name  

答案 1 :(得分:1)

是的,当然在Sql-Server中是允许的。如果你写下面的查询,它的工作正常。

UPDATE KKDb SET KKDb.StdName = 'Sai' WHERE (KKDb.StdNo = 1)

答案 2 :(得分:1)

documentation中提到的PostgreSQL中使用表别名为SET部分中的列添加前缀是无​​效的:

  

     

表格中列的名称。如果需要,可以使用子字段名称或数组下标限定列名称。不要在目标列的规范中包含表的名称 - 例如,UPDATE选项卡SET tab.col = 1无效。

还提到此行为符合SQL标准。