--一時変数(結果格納用)
CREATE TABLE #TEMP_TABLE(
T_NAME varchar(128)
,T_CNT int
)
--sp_MSforeachtableでユーザテーブル全部をループ処理
EXEC sp_MSforeachtable @command1 ='
INSERT INTO #TEMP_TABLE
SELECT
''?'' as T_NAME
,COUNT(*) as T_CNT
FROM ?
'
--実行結果を表示する
SELECT * FROM #TEMP_TABLE ORDER BY T_NAME
DROP TABLE #TEMP_TABLE
CREATE TABLE #TEMP_TABLE(
T_NAME varchar(128)
,T_CNT int
)
--sp_MSforeachtableでユーザテーブル全部をループ処理
EXEC sp_MSforeachtable @command1 ='
INSERT INTO #TEMP_TABLE
SELECT
''?'' as T_NAME
,COUNT(*) as T_CNT
FROM ?
'
--実行結果を表示する
SELECT * FROM #TEMP_TABLE ORDER BY T_NAME
DROP TABLE #TEMP_TABLE
?の部分がテーブル名に置き換わるので、SELECTの項目に入れており、かつ、FROMのテーブル名になるようにしてみました。
尚、このての関数でSP_MSForEachDBというのあります。関数名からもわかるとおり、こちらはテーブルではなく全DBをループして処理するようです。
0 件のコメント:
コメントを投稿