So I needed to add 2 columns to about 20 tables.  Not much and I could have easily wrote a script for each table.  But thats boring.  So I started searching around.

I came up with this

Select 'Alter table '+table_name+' Add yourcol datatype' from information_schema.tables
where table_name<>'dtProperties'

Cool but I wanted it to run and execute at once, not just create the scripts.  The only way I could think was is with a cursor.  Something I didn't want to do.  But did anyway.  I came up with this.

DECLARE Alter_tables_cursor CURSOR
   FOR
   select table_name from information_schema.tables where table_name<>'dtProperties' and table_type<>'VIEW'
OPEN Alter_tables_cursor
DECLARE @tablename sysname
FETCH NEXT FROM Alter_tables_cursor INTO @tablename
WHILE ( @@FETCH_STATUS =)
BEGIN
 PRINT 'Alter table '+@tablename+' Add ModifiedBy int, ModifiedOn datetime'
 EXEC('Alter table '+@tablename+' Add ModifiedBy int, ModifiedOn datetime')
 FETCH NEXT FROM Alter_tables_cursor INTO @tablename
 
END
PRINT 'All user-defined tables have been Altered.'
DEALLOCATE Alter_tables_cursor
I'm sure there are better ways.  If so post them.