• 相关软件
    >sp_foreignkeys 创建者:webmaster 更新时间:2006-02-16 15:51

    返回引用主键的外键,这些主键在链接服务器中的表上。



    语法


    sp_foreignkeys [ @table_server = ] 'table_server'

        [ , [ @pktab_name = ] 'pktab_name' ]

        [ , [ @pktab_schema = ] 'pktab_schema' ]

        [ , [ @pktab_catalog = ] 'pktab_catalog' ]

        [ , [ @fktab_name = ] 'fktab_name' ]

        [ , [ @fktab_schema = ] 'fktab_schema' ]

        [ , [ @fktab_catalog = ] 'fktab_catalog' ]



    参数


    [@table_server =] 'table_server'



    链接服务器的名称,将为该服务器返回表信息。table_server 的数据类型为 sysname,无默认值。



    [@pktab_name =] 'pktab_name'



    是带有主键的表的名称。pktab_name 的数据类型为 sysname,默认值为 NULL。



    [@pktab_schema =] 'pktab_schema'



    是带有主键的架构名称。pktab_schema 的数据类型为 sysname,默认值为 NULL。在 Microsoft® SQL Server™ 中,该项参数包含所有者名称。



    [@pktab_catalog =] 'pktab_catalog'



    是带有主键的目录名称。pktab_catalog 的数据类型为 sysname,默认值为 NULL。在 SQL Server 中,该项参数包含数据库名称。



    [@fktab_name =] 'fktab_name'



    是带有外键的表的名称。fktab_name 的数据类型为 sysname,默认值为 NULL。



    [@fktab_schema =] 'fktab_schema'



    是带有外键的架构名称。fktab_schema 的数据类型为 sysname,默认值为 NULL。



    [@fktab_catalog =] 'fktab_catalog'



    是带有外键的目录名称。fktab_catalog 的数据类型为 sysname,默认值为 NULL。



    返回代码值




    结果集


    多种 DBMS 产品支持表的三段命名方式 (catalog.schema.table),这在结果集中有所表现。






























































































    列名数据类型描述
    PKTABLE_CATsysname表的目录,主键驻留在该表中。
    PKTABLE_SCHEMsysname表的架构,主键驻留在该表中。
    PKTABLE_NAMEsysname表的名称(该表带有主键)。该字段始终返回值。
    PKCOLUMN_NAMEsysname主键列的名称,针对返回的 TABLE_NAME 的每个列。该字段始终返回值。
    FKTABLE_CATsysname表的目录,外键驻留在该表中。
    FKTABLE_SCHEMsysname表的架构,外键驻留在该表中。
    FKTABLE_NAMEsysname表的名称(该表带有外键)。该字段始终返回值。
    FKCOLUMN_NAMEsysname外键列的名称,针对返回的 TABLE_NAME 的每个列。该字段始终返回值。
    KEY_SEQsmallint多列主键中列的序列号。该字段始终返回值。
    UPDATE_RULEsmallint当 SQL 操作是更新时,应用于外键的动作。SQL Server 为这些列返回 0 或 1。开放数据服务网关可返回值 0、1 或 2:

    0= 对外键的 CASCADE 修改。

    1= 如果有外键,那么进行 NO ACTION 修改。

    2=SET_NULL;将外键设置为 NULL。


    DELETE_RULEsmallint当 SQL 操作是删除时,应用于外键的动作。SQL Server 为这些列返回 0 或 1。开放数据服务网关可返回值 0、1 或 2:

    0= 对外键的 CASCADE 修改。

    1= 如果有外键,那么进行 NO ACTION 修改。

    2=SET_NULL;将外键设置为 NULL。


    FK_NAMEsysname外键标识符。如果对数据源不可用,则其为 NULL。SQL Server 返回 FOREIGN KEY 约束名。
    PK_NAMEsysname主键标识符。如果对数据源不可用,则其为 NULL。SQL Server 返回 PRIMARY KEY 约束名。
    DEFERRABILITYsmallint指明限制检查是否为可延迟的。



    在结果集中,FK_NAME 和 PK_NAME 列总是返回 NULL。



    注释


    sp_foreignkeys 查询 OLE DB 提供程序的 IDBSchemaRowset 接口的 FOREIGN_KEYS 行集,该提供程序与 table_server 相对应。table_nametable_schematable_catalogcolumn 参数传递到此接口,用以限制返回的行。



    示例


    下面的示例返回有关 Northwind 数据库中 Customers 表的外键信息。



    USE master
    EXEC sp_foreignkeys @table_server = N'LONDON1',
      @pktab_name = N'Customers',
      @pktab_catalog = N'Northwind'
    相关文章
    本页查看次数: