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