程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了识别Sybasetables, fields, keys, constraints大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决识别Sybasetables, fields, keys, consTraints?

开发过程中遇到识别Sybasetables, fields, keys, consTraints的问题如何解决?下面主要结合日常开发的经验,给出你关于识别Sybasetables, fields, keys, consTraints的解决方法建议,希望对你解决识别Sybasetables, fields, keys, consTraints有所启发或帮助;

这是一个开始:

SELECT 
    t.name, 
    CASE k.type 
        WHEN 1 THEN 'PK' 
        WHEN 2 THEN 'FK'
        WHEN 3 THEN 'Common'
    END,
    c.name
FROM 
    sysobjects t INNER JOIN 
    sysColumns c ON c.ID = t.ID INNER JOIN
    syskeys k ON k.ID = t.ID AND c.colID IN (k.key1, k.key2, k.key3, k.key4, k.key5, k.key6, k.key7, k.key8)
WHERE 
    t.type = 'U' AND k.type in (1,2)

它不包含键ID,因为我想您可能会以某种方式对非空表ID和keyN列进行哈希处理以产生键的唯一ID。

它还不包括唯一索引。为此,您需要采取UNION以下措施:

SELECT 
    t.name, 
    'Unique',
    c.name
FROM 
    sysobjects t INNER JOIN 
    sysColumns c ON c.ID = t.ID INNER JOIN
    sysindexes i ON i.ID = t.ID
WHERE t.type = 'U'

解决方法

正在尝试设置一个Sybase查询,该查询将为我提供以下输出:

Table     KeyType      Keynumber      column
table1    PK           1              table1_id
table1    FK           2              table2_id    
table1    FK           3              table3_id
table1    FK           4              table4_id
table1    Unique       5              table1_abc
table1    Unique       5              table1_def

换句话说,我需要每个表的PK,它具有的每个外键以及每个唯一键(不是一个键具有多个元素(例如上面的唯一键)的地方,是通过具有相同的PK来标识的。键号)。

我猜我需要使用sysobject,sysColumns,syskeys和sysconsTraints,但我似乎无法弄清楚它们如何相互链接。

大佬总结

以上是大佬教程为你收集整理的识别Sybasetables, fields, keys, constraints全部内容,希望文章能够帮你解决识别Sybasetables, fields, keys, constraints所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。