什么是SQL"伪列"?

Cor*_*ger 5 t-sql sql-server

我不小心编码SELECT $FOO..并得到错误"无效的伪列"$ FOO".

我找不到他们的任何文件.这是我应该知道的吗?

编辑:这是一个MS SQL Server特定的问题.

Rob*_*cha 7

伪列是实际列的符号别名,具有特殊属性,例如,$IDENTITY 是分配了 IDENTITY 的列的别名,分配了 ROWGUIDCOL 的列的 $ROWGUID。它用于内部管道脚本。


gno*_*bal 0

简单的 Google 搜索就可以从 Oracle 的参考文献中找到这一点:

伪列的行为类似于表列,但实际上并不存储在表中。您可以从伪列中进行选择,但不能插入、更新或删除它们的值。

我认为您得到的错误只是因为没有列 $FOO,因此查询解析器测试以查看是否存在名为 $FOO 的伪列作为后备。由于没有名为“$FOO”的伪列(并且没有其他后备),您会收到错误“无效的伪列 $FOO”。不过,这只是一个猜测。我不是数据库方面的专家。