INFORMATION_SCHEMA.ROUTINES 包含这两列:
SPECIFIC_SCHEMA: Specific name of the schema.
ROUTINE_SCHEMA: Name of the schema that contains this function.
Run Code Online (Sandbox Code Playgroud)
对于SPECIFIC_和的ROUTINE_版本CATALOG和NAME定义为等效的(目录ROUTINE_CATALOG的特定名称.此名称与.- 相同),但对于SCHEMA-省略了这个措辞
SPECIFIC_SCHEMA和之间有什么区别ROUTINE_SCHEMA?
[编辑:显然3年多后,这被标记为重复,所以我必须澄清.建议的副本是关于不同的字段,所以不,我不相信它是重复.]
嗯,这有点像向后兼容。
它INFORMATION_SCHEMA本身只是用于更轻松地迁移服务器版本和简化。我将提供基于 SQL Server 的示例。
您可能想要(或者可能需要)使用该表sys.objects,它基本上提供了与 提供的几乎所有相同的信息INFORMATION_SCHEMA.ROUTINES。事实上,如果您确实想知道过程的真实模式名称,您需要使用它 - 正如微软已经在他们自己的文档中声明的那样。但是,如果您需要构建一个只需要一些基本信息(例如例程是否存在或类似信息)的产品,您将不会接受sys.objects它可能会因服务器版本而异。这使得维护变得更加困难。INFORMATION_SCHEMA许多版本基本上保持不变。Microsoft 将仅应用较小的更改,并且视图下的工作将被更改。这意味着您拥有多年稳定的代码和许多不同的服务器版本。
这可能是事实,即有两列具有相同的定义,因此内容也相同。SPECIFIC_NAME它与 andROUTINE_NAME或SPECIFIC_CATALOGand相同ROUTINE_CATALOG。正如微软在其文档中自我声明的那样,它们基本上是相同的。
它可能是一个遗迹,可能永远留在那里,只是为了与其他 DBMS 代码或旧版本的 SQL Server 本身兼容。
顺便说一句,Postgres 有相同的两行,它们都包含相同的内容。
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |