-2

recordidrecord name、および対応するテーブル名を持つ追加の列を持つテーブルがあります。各レコードには独自のテーブルがあります。ここで、SQL の選択クエリを使用して、対応するテーブル数を選択しrecord nameたいと考えています。id私を助けてください ..

ありがとうございました

次のような「レコード」という名前のテーブルがあります

recordid 名 説明 テーブル名 ---------------------------------------------- --- 1 レコード 1 説明 1 tb_name1

 2       record2      description1     tb_name2

各レコードにはテーブルがあります。たとえば、レコード 1 のテーブル名は tb_name1 で、レコード 2 のテーブル名は tb_name2 です。

tb_name1 で

id recordid 名前 dob アドレス entrydate

1    1           xxx      13-6-2011   xxx           7/9/2013
2    1           xxx      13-6-2011   xxx           8/9/2013
3    1           xxx      13-6-2011   xxx           8/9/2013
4    1           xxx      13-6-2011   xxx           9/9/2013

そのように tb_name2 で

id recordid 名前 dob アドレス entrydate

1    2           xxx      13-6-2011   xxx           6/9/2013
2    2           xxx      13-6-2011   xxx           7/9/2013
3    2           xxx      13-6-2011   xxx           8/9/2013

のような結果が欲しい

recordid 名 説明 カウント

1 レコード 1 の説明 1 4 2 レコード 2 の説明 1 3

4,3 は、対応するテーブルの行数です。

4

1 に答える 1

0

カウントが 100% 正確であることが保証されていないことを許容できる場合は1、カタログ ビューに参加できます。カタログ ビューは、その列を次sys.partitionsのように説明します。rows

このパーティション内のおおよその行数を示します。

したがって、次のような結合があります。

select recordid,name,description,rowcount
from
   [unnamedfirsttableinquestion] t
        inner join
  (select object_id,SUM(rows)
    from sys.partitions group by object_id) u (oid,rowcount)
     on
         u.oid = OBJECT_ID(t.tablename)

1実際には、通常はこれを許容できます。次のいずれかです。

  • テーブルが頻繁に更新されることはありません。この場合、行数は最新の状態である可能性が非常に高くなります。または、
  • テーブルは頻繁に更新される可能性があり、その場合、答えがわかるまでには変更されている可能性があります。
于 2013-09-09T06:31:29.930 に答える