4

私は次のクエリを実行します:

a. select * from TABLE_TEMP

クエリは正常に実行されますが、行は返されません。返されるデータセットは空で、0行が含まれています。このクエリの実行プランは、次の場所からダウンロードできます。 実行プランクエリa

b. select count(*) from TABLE_TEMP

このクエリも正常に実行されますが、有限の値を返します。このクエリの実行プランは次の場所からダウンロードできます。 実行プランクエリb

この問題を解決するための指針を教えてください。

スクリーンショットのPFB: 奇妙な行動

4

2 に答える 2

3

データベースに何らかの破損が発生している可能性があります。ドキュメントに精通した後、実行DBCC CHECKDB(または)します。特に、データベースの互換性レベルに関するインデックスチェックのセクションと:DBCC CHECKTABLE

以前のバージョンのSQLServerでは、テーブルごと、インデックスごとの行数とページ数の値が正しくなくなる可能性がありました。特定の状況下では、これらの値の1つ以上が負になることさえあります。SQL Server 2005以降では、これらの値は常に正しく維持されます。したがって、SQL Server 2005以降で作成されたデータベースには、誤ったカウントが含まれていてはなりません。ただし、SQLServer2005以降にアップグレードされたデータベースはアップグレードされる可能性があります。

于 2012-04-09T22:30:58.123 に答える
-1

CountはSQLの関数であり、Int値、つまり影響を受けるレコードの数を返します。

于 2012-04-09T08:55:07.017 に答える