sql >> データベース >  >> RDS >> Sqlserver

特定のtable.columnを参照する外部キーを持ち、それらの外部キーの値を持つすべてのテーブルを見つけるにはどうすればよいですか?

    このクエリを試してください:

    sysreferencesを使用する必要があります およびsysobjects 情報を取得するためのテーブル

    以下のクエリは、すべての外部キーと、データベースの列名を持つ親テーブルを提供します

    select cast(f.name as varchar(255)) as foreign_key_name
    , cast(c.name as varchar(255)) as foreign_table
    , cast(fc.name as varchar(255)) as foreign_column
    , cast(p.name as varchar(255)) as parent_table
    , cast(rc.name as varchar(255)) as parent_column
    from  sysobjects f
    inner join sysobjects c on f.parent_obj = c.id
    inner join sysreferences r on f.id = r.constid
    inner join sysobjects p on r.rkeyid = p.id
    inner join syscolumns rc on r.rkeyid = rc.id and r.rkey1 = rc.colid
    inner join syscolumns fc on r.fkeyid = fc.id and r.fkey1 = fc.colid
    where f.type = 'F'
    


    1. Knee-Jerk PerfMonカウンター:ページの平均余命

    2. WHERE value IS NOT IN(サブクエリ)

    3. WHERE句を使用した複数のテーブルを使用したMySQLUPDATE構文

    4. ウィンドウ関数を使用してSQLクエリを最適化する方法