• Version for Sql 2000: 😀

    SET ANSI_NULLS ON

    SET QUOTED_IDENTIFIER ON

    GO

    -- =============================================

    --PART OF THE MACRO CODE EXECUTION BY CHRIS MORTON

    --CONTACT CBMORTON@GMAIL.COM

    --2009-01-05

    --20/01/2009 Carlo Romagnano - specify table names and @SQLScript speficy $T as place holder for the table name

    -- =============================================

    ALTER PROCEDURE x_TableLoops(@table_name sysname = '%',@SQLScript VARCHAR(8000) = NULL)

    AS

    BEGIN

    DECLARE

    @tablename sysname

    ,@Counter INT

    ,@MaxCounter INT

    ,@sql varchar(8000)

    DECLARE @tables TABLE

    (

    id INT IDENTITY(1, 1) PRIMARY KEY WITH FILLFACTOR = 100

    ,

    sysname

    )

    INSERT INTO @tables (

    )

    SELECT TABLE_NAME AS

    FROM INFORMATION_SCHEMA.tables

    WHERE TABLE_TYPE = 'BASE TABLE'

    AND TABLE_NAME LIKE @table_name

    SET @MaxCounter = @@ROWCOUNT

    SET @sqlscript = ISNULL(@sqlscript,'PRINT ''$T''')

    SET @counter = 1

    WHILE @counter <= @MaxCounter

    BEGIN

    SELECT @tablename =

    FROM @tables

    WHERE id = @counter

    SET @sql = REPLACE(@sqlscript,'$T',CAST(@tablename AS VARCHAR(255))

    EXEC (@sql)

    SET @Counter = @counter + 1

    END

    END