
特定のテーブルに問題があります。Kimberly Tripp のスクリプトを使用して、断片化レベルに基づいてインデックスを再構築していました。ジョブは次のエラーで失敗しました:
メッセージ 2501、重大度 16: 'CMS_InfoObjects6' という名前のテーブルまたはオブジェクトが見つかりませんでした。sysobjects を確認してください。[SQLSTATE 42S02]
sysobjects をチェックして、テーブル名がリストされていることを確認しました。select object_name(2137058649) は CMS_InfoObjects6 を返します。select object_id('CMS_InfoObjects6') は null を返します。select object_id(object_name(2137058649)) も null を返します。
EM でテーブルを表示でき、完全修飾名 (所有者が dbo ではない) を使用すると、QA でテーブルから * を選択できます。
dbcc checkdb はエラーを返しません。
@name varchar(500) を宣言し、@name = object_name(2137058649) を設定します。dbcc checktable (@name)
「'CMS_InfoObjects6' という名前のテーブルまたはオブジェクトが見つかりませんでした。sysobjects を確認してください。」が返されます。
私は混乱しています。
答え1
変数にスキーマが含まれていません。オブジェクトが既定のスキーマにない場合 (この場合のように、dbo ではないと指定した場合)、DBCC CHECKTABLE に完全修飾名を渡す必要があります。そのコマンドについては、Books Online ページの下部にあるサンプル スクリプトを確認してください。
http://msdn.microsoft.com/en-us/library/ms174338.aspx
スキーマを含めるには、Kimberly のスクリプトを変更する必要があります。(面白いことに、今まさに彼女は私の前で授業をしています、ハハハ)