Wednesday, April 15, 2009

Query To Alter ALL Tables in a specified Database

--Query To Alter all Tables in @db_NAME to include 5 new Columns, Status, Create_Date, modify_Date, Creator_ID, Modifier
declare @db_NAME varchar(100); select @db_NAME = 'test_indicator'
declare @tbl_TYPE varchar(100); select @tbl_TYPE = 'base table'
declare @tbl_NAME varchar(100);
declare @tbl int;
declare @tbl_MAX int;
declare @sql varchar(1000)
IF object_id('tempdb..#Temp') IS NOT NULL
BEGIN
DROP TABLE #temp
END
CREATE TABLE #Temp(
id int IDENTITY(1,1),
table_catalog varchar(255),
table_name varchar(255)
)

insert into #Temp
select table_catalog, table_name from INFORMATION_SCHEMA.TABLES where table_catalog=@db_NAME and table_type = @tbl_TYPE and table_name <> 'dtproperties'
select @tbl=min(id),@tbl_MAX = count(id) from #Temp


WHILE @tbl <= @tbl_MAX
BEGIN
select @tbl_NAME = table_name from #temp where id = @tbl
print @tbl_NAME
set @sql = 'ALTER TABLE ' + @tbl_NAME + ' ADD status bit, create_date datetime, modify_date datetime, creator_id int, modifier_id int'
--exec (@sql)
print @sql
set @tbl = @tbl +1
END

No comments: