您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_helpkey

语法


sp_helpkey [<tabname>]

参数

<tabname>

是当前数据库中表或视图的名称。如果没有指定名称,则过程报告当前数据库中定义的所有键的有关信息。

示例

示例 1

显示有关当前数据库中定义的键的信息。“object_keys”和“related_keys”列引用构成键的列名:


sp_helpkey

keytype object      related_object object_keys         related_keys 
------- -------     -------------- ---------------     --------------
primary authors     -- none --     au_id,*,*,*,*,*,*,*  *,*,*,*,*,*,*,*
foreign titleauthor authors        au_id,*,*,*,*,*,*,* au_id,*,*,*,*,*,*,*

用法

使用 sp_helpkey 时,还存在一些其它注意事项:

  • sp_helpkey 列出有关引用表 <tabname> 的所有主键、外键和公用键定义的信息;或者,如果省略 <tabname>,则列出有关数据库中所有键的信息。使用 sp_primarykey、sp_foreignkey 和 sp_commonkey 系统过程定义这些键。

  • sp_helpkey 不提供有关 create table 语句定义的 unique 或 primary key 整体性约束的信息。使用 sp_helpconstraint 确定为表定义了哪些约束。

  • 创建键以使在数据库设计中为隐式的逻辑关系成为显式的逻辑关系,以便应用程序可以使用这些信息。

  • 如果您指定一个对象名,sp_helpkey 将按照 SAP ASE 规则来查找对象:

    - 如果您没有指定所有者名,并且拥有具有指定名称的对象,则 sp_helpkey 将报告有关该对象的信息。

    - 如果您没有指定所有者名称,并且不拥有具有该名称的对象,但数据库所有者拥有具有该名称的对象,则 sp_helpkey 会报告该数据库所有者的对象的有关信息。

    - 如果您或数据库所有者都不拥有具有指定名称的对象,则 sp_helpkey 会报告错误情况,即使在不同所有者的数据库中存在具有该名称的对象时也是如此。

    - 如果您和数据库所有者都拥有具有指定名称的对象,并且您要访问数据库所有者的对象,则以 <dbo>.<objectname> 形式指定该名称。

  • 用所有者的名称限定其他数据库用户(既不是您自己也不是数据库所有者)所拥有的对象,如“mary.myproc”中所示。