相关疑难解决方法(0)

SQL UPDATE评估顺序

以下查询中的评估顺序是什么:

UPDATE tbl SET q = q + 1, p = q;
Run Code Online (Sandbox Code Playgroud)

也就是说,将"tbl"."p"被设置为qq + 1?此处的评估顺序是否受SQL标准的约束?

谢谢.

UPDATE

在考虑了Migs的回答之后,我对我能找到的所有数据库进行了一些测试.虽然我不知道标准是什么,但实施方式各不相同.

特定

CREATE TABLE tbl (p INT NOT NULL, q INT NOT NULL);
INSERT INTO tbl VALUES (1, 5);   -- p := 1, q := 5
UPDATE tbl SET q = q + 1, p = q;
Run Code Online (Sandbox Code Playgroud)

我发现的价值"p""q"分别为:

database           p   q
-----------------+---+---
Firebird 2.1.3   | 6 | 6  -- But see …
Run Code Online (Sandbox Code Playgroud)

sql evaluation operator-precedence sql-update

36
推荐指数
2
解决办法
4305
查看次数

更改Oracle中的主键值

有没有办法将另一个表引用的主键的值更改为外键?

database oracle foreign-keys primary-key

3
推荐指数
2
解决办法
2万
查看次数

在Sql Server中交换ID

我看了一下这个问题:sql swap主键值

所以我得到了以下脚本:

UPDATE t, t as t2
SET t.id = t2.id, t2.id = t.id
WHERE t.id = 1 AND t2.id = 2
Run Code Online (Sandbox Code Playgroud)

但我无法将其转换为有效的SQL Server语法.

请帮我 :)

提前致谢!

sql-server swap key foreign-keys

3
推荐指数
2
解决办法
1035
查看次数