Освен ако не пишете приложение, за което знаете, че ще трябва да бъде преносимо или искате само основна информация, аз бих използвал по подразбиране собствените системни изгледи на SQL Server за начало.
Information_Schema
изгледите показват само обекти, които са съвместими със стандарта SQL-92. Това означава, че няма изглед на информационна схема дори за съвсем елементарни конструкции като индекси (Те не са дефинирани в стандарта и са оставени като подробности за внедряването.) Да не говорим за някакви собствени функции на SQL Server.
Освен това това не е панацеята за преносимост, която може да се предположи. Реализиранията все още се различават между системите. Oracle изобщо не го внедрява "извън кутията" и документите на MySql казват:
Потребителите на SQL Server 2000 (който също следва стандарта) може да забележат силно сходство. Въпреки това, MySQL е пропуснал много колони, които не са подходящи за нашата реализация, и е добавил колони, които са специфични за MySQL. Една такава колона е колоната ENGINE в таблицата INFORMATION_SCHEMA.TABLES.
Дори за SQL конструкции за хляб и масло, като ограничения на външния ключ, Information_Schema
изгледите могат да бъдат значително по-малко ефективни за работа от sys.
изгледи, тъй като те не разкриват идентификатори на обекти, които биха позволили ефективно запитване.
напр. Вижте въпроса забавяне на SQL заявката от 1 секунда до 11 минути - защо? и планове за изпълнение.
INFORMATION_SCHEMA
sys