日期:2014-05-17  浏览次数:20444 次

数据库的表动态增加字段

数据库有两个表A和B,表A有字段a,b,c,当向表A插入数据m,n,l时,表B就增加字段n;当向表A插入数据a,b,c时,表B就增加字段b···这个如何做?

------解决方案--------------------
reate table tempA(a varchar(10),b varchar(10),c varchar(10))
go
create table tempB(a varchar(10),b varchar(10),c varchar(10))
create proc test
 (      @A varchar(10), --数据1
        @B varchar(10), --数据2
        @C varchar(10)  --数据3
 )
 as
 begin
        declare @sql varchar(200)
--插入数据到A表
    insert into tempA(a,b,c)
      select @A,@B,@C
if not exists(select name from syscolumns where id=object_id('tempB') and name=@A)
begin
--更新B表字段
    set @sql='alter table tempB add '+@A+' varchar(10)'
    exec(@sql)
end
if not exists(select name from syscolumns where id=object_id('tempB') and name=@B)
begin
--更新B表字段
set @sql='alter table tempB add '+@B+' varchar(10)'
    exec(@sql)
end
if not exists(select name from syscolumns where id=object_id('tempB') and name=@C)
begin
--更新B表字段
set @sql='alter table tempB add '+@C+' varchar(10)'
    exec(@sql)
end
end