web-dev-qa-db-ja.com

SQL Server 2012にシステムテーブルがない

SQL Server 2000データベースを2005年に、次に2012年に復元しました。現在、SQL Server 2000に存在していたシステムテーブルを表示できません。

どうして?

3
user3171149

古いシステムテーブルの代わりに カタログビュー を使用する必要があります(例 sys.objects の代わりに sys.sysobjects 、- sys.columnssys.syscolumns )の代わりにシステムテーブルはまだ存在しますが、下位互換性のためだけに存在しています。それらの一部は隠しシステムデータベースmssqlsystemresourceに移動されているか、および 専用管理者接続 で接続している場合にのみ表示されます。もちろん 新しいカタログビューを表示するには特定の権限が必要です

古いドキュメントのメモをお読みください。 sys.syscolumns の場合:

このSQL Server 2000システムテーブルは、下位互換性のためのビューとして含まれています。代わりに、現在のSQL Serverシステムビューを使用することをお勧めします。同等のシステムビューを見つけるには、SQL Server 2000システムテーブルのSQL Server 2005システムビューへのマッピングを参照してください。この機能は、Microsoft SQL Serverの将来のバージョンで削除される予定です。新しい開発作業ではこの機能を使用せず、現在この機能を使用しているアプリケーションの変更を計画してください。

ここに、彼らが言及するマッピングドキュメントへのリンクがありますが、リンクしないでください 。これは、たとえばsyscolumnsからsys.columnsへの移行を開始する方法を示しているはずです。

古いシステムテーブルの使用を停止します。新しいメタデータを学びます。滞在するためにここにあります。

10
Aaron Bertrand