|
|
1
2
根据ANSI SQL-92标准,联接表的更新不是标准的一部分;请参见 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt 第13.9和13.10节(您必须搜索391,页码)。 我试图找到一个ANSI2003标准,但我最接近的是这里:www.wiscorp.com/sql_2003_standard.zip(一个最新的草案)。在update语句和join语法方面,两者之间没有实质性的区别。 斯图 |
|
2
4
如果我正确理解这个问题,我认为答案是否定的,没有标准的“基于连接的更新”。这个 postgres manual page for UPDATE 包括在“兼容性”下:
虽然这并没有明确说明 不是吗? ,该手册中的兼容性说明通常在标准中存在相关但不相同的功能时进行说明。更重要的是,提到其他具有不同行为的系统表明,如果有一个标准,那么无论如何都不能依赖它。 |
|
|
3
2
您假设所有软件包都遵循ANSI SQL标准……实际上,我所知道的所有软件包都没有完全遵循这些标准。 如果您希望遵守ANSI SQL标准,最好从文档化的标准本身开始。以下是SQL-92文档: |
|
|
4
2
小心点,伙计们。编写真正的可移植代码比您想象的要困难得多,而且您还必须愿意在性能、易于编码/维护和可读性方面放弃很多东西。只需声明并使用SQL Server中的一个变量,您的代码就不再是真正可移植的了。编写一个审计触发器,我可以保证您的触发器不会在Oracle、SQL Server和其他几个流行的引擎之间移植。而且,这真的很重要,因为它在任何RDBMS中都不是火箭科学(好吧,除了在Oracle中编写联合更新而不使用标准但不可移植的merge)。 另外,不要忘记有两种基本类型的SQL。它支持大多数前端代码和批处理代码的单行性质。如果您真的希望您的批处理代码运行良好,那么您将使用许多数据库引擎的“专有扩展”,以便在一夜之间高效地处理几十亿行…同一天晚上。;-) 为“真正的”可移植性编写代码时要小心。你最终可能会陷入混乱,比你想象的要慢得多。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 9 月前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 10 月前 |
|
ojek · 如何对SQL结果进行分组和编号? 10 月前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 10 月前 |
|
|
Sax · 规范化Google表格(第一步) 10 月前 |
|
|
BarıŠUÅaklı · 如何在ON冲突更新中使用CTE中的值 10 月前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 10 月前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 10 月前 |
|
|
Nebula Tech · 在SQL Server中搜索字符串中单词的多次出现 10 月前 |