如何更新记录的所有列而不必列出每列

Bin*_*Cat 21 sql sql-update

我试图找出是否有办法更新记录,而不必列出要更新的每个列名称.

例如,如果我可以使用类似的东西,那将是很好的:

// the parts inside braces are what I am trying to figure out
UPDATE Employee
SET {all columns, without listing each of them} 
WITH {this record with id of '111' from other table}
WHERE employee_id = '100'
Run Code Online (Sandbox Code Playgroud)

如果可以这样做,那么编写此类查询的最直接/最有效的方法是什么?

npe*_*npe 22

这是不可能的.

您尝试做的不是SQL规范的一部分,任何数据库供应商都不支持.请参阅MySQL,Postgresql,MSSQL,Oracle,Firebird,Teradata的SQL UPDATE语句的规范.其中每一个仅支持以下语法:

UPDATE table_reference
   SET column1 = {expression} [, column2 = {expression}] ...
[WHERE ...]
Run Code Online (Sandbox Code Playgroud)

  • 是的,在在这里发布我的问题之前,我花了几个小时研究解决方案,认为可能有一些只有专家知道的核心方法来完成它。 (3认同)

R.A*_*nso 6

这是不可能的,但是..

你能行的:

begin tran
delete from table where CONDITION
insert into table select * from EqualDesingTabletoTable where CONDITION
commit tran
Run Code Online (Sandbox Code Playgroud)

小心标识字段。