select * from sysobjects
where xtype = 'F'
Надеюсь, это должно сработать и быть совместимым с SQL Server 2000!
Если вам дополнительно требуется информация о таблицах и столбцах в SQL Server 2000, она становится немного более сложной; вам нужно присоединиться к каталогам sysforeignkeys
и syscolumns
следующим образом:
select
so.name 'foreign key name',
OBJECT_NAME(parent_obj) 'table',
OBJECT_NAME(sf.fkeyid) 'referencing table',
sc1.name 'referencing column',
OBJECT_NAME(sf.rkeyid) 'referenced table',
sc2.name 'referenced column'
from sysobjects so
inner join sysforeignkeys sf on so.id = sf.constid
inner join syscolumns sc1 on sf.fkeyid = sc1.id and sf.fkey = sc1.colid
inner join syscolumns sc2 on sf.rkeyid = sc2.id and sf.fkey = sc2.colid
where so.xtype in ('F','PK')
И если вы хотите использовать представления INFORMATION_SCHEMA, которые действительно доступны в SQL Server 2000, используйте этот запрос:
SELECT
rc.CONSTRAINT_NAME,
rcu.TABLE_NAME 'Referencing Table',
rcu.COLUMN_NAME 'Referencing Column',
rcu1.TABLE_NAME 'Referenced Table',
rcu1.COLUMN_NAME 'Referenced Column'
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
INNER JOIN
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE rcu
ON rc.CONSTRAINT_CATALOG = rcu.CONSTRAINT_CATALOG
AND rc.CONSTRAINT_NAME = rcu.CONSTRAINT_NAME
INNER JOIN
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE rcu1
ON rc.UNIQUE_CONSTRAINT_CATALOG = rcu1.CONSTRAINT_CATALOG
AND rc.UNIQUE_CONSTRAINT_NAME = rcu1.CONSTRAINT_NAME
Марк