SELECT
特定のデータベースに対してのみステートメントを実行したいと考えています。データベースのリストは、次のクエリによって返されます。
DECLARE @OneWeekAgo DATETIME
SELECT @OneWeekAgo = DATEADD(week,-1,GETDATE())
select distinct DB_NAME(database_id) DatabaseName
into #temp
from sys.dm_db_index_usage_stats
where DB_NAME(database_id) like 'TTT[_][a-z]%'
and DB_NAME(database_id) not like '%test%'
and last_user_update > @OneWeekAgo
返されたこれらすべてのデータベースで、簡単なクエリを実行したいと思います。
SELECT *
FROM TTT_Clients
WHERE country like 'SWEDEN'
それ、どうやったら出来るの?次のようなものを使用して、「IN (SELECT DISTINCT...)」行でエラーが発生します。
exec sp_msforeachdb ' use [?] IF ''?'' in (select distinct DB_NAME(database_id) DatabaseName
from sys.dm_db_index_usage_stats
where DB_NAME(database_id) like ''TTT[_][a-z]%''
and DB_NAME(database_id) not like ''%test%'')
BEGIN
SELECT * FROM TTT_Clients WHERE country like ''SWEDEN''
END