1

私は動的 SQL と SQL Server 全般にかなり慣れていませんが、 内のテーブル リストを反復処理したいと考えていますinformation_schema.tables。各反復にはvarchar、テーブル名 ( ) 内で検索される月-年をリストする変数がありますwhere table_name like concat('USA_RETHHDs_%', @Month)

一致した日付を持つ各テーブルは、varchar変数に配置されます。table問題は、代わりにリストから変数を取得したいのですが、information_schema.tablesこれを行う方法がわからないことです。varcharその結果、変数を動的 SQL クエリに埋め込んで、動的ルートに移動しようとしています。ただし、tableではなく変数が必要varcharです。

declare @Month varchar(6)
declare @Table varchar(32)
declare @sql nvarchar(max)
declare @MonthCount int

while @MonthCount > 0
    begin
        select @Month = DateSuffix from @DateTable where Row = @MonthCount
        select @Table = table_name from information_schema.tables where table_name like concat('USA_RETHHDs_%', @Month)
        select @Table = concat('dbo.', @Table)
        set @sql = 'select * from @Table'
        execute SP_EXECUTESQL @sql  

        select @MonthCount = @MonthCount - 1
    end
4

1 に答える 1