往数据表插入列
现有一个数据表talbe1
ID 项目 类型 长度
1 计量单位 字符 20
2 数量 数字 4
. .... .... .
. .... .... .
起始时table2为
ID 书名
然后
table2将根据table1的内容动态的添加列
ID 书名 计量单位(varchar(20)) 数量(int(4))..........
我写了一段程序(有错),是动态的往table2中插入列,先要判断要插入table2中的列是否存在,
declare @sql varchar(2000)
set @sql= 'alter table table2 add '
select @sql=@sql+项目名称+if exists(Select * from dbo.syscolumns Where Name=项目名称 And ID=OBject_ID( '教材管理卡片编辑 ')) ' '
else case
when 项目类型 = '文本型 ' then ' varchar( ' + rtrim(项目长度) + '), '
when 项目类型 = '数字型 ' then ' int '
end from table1
set @sql=left(@sql,len(@sql))
print @sql
exec(@sql)
上面的程序应怎样改,先判断要增加的列是否存在,然后再插入
------解决方案--------------------declare @sql varchar(2000)
set @sql= 'alter table table2 add '
select @sql=@sql+项目名称+case when exists(Select * from dbo.syscolumns Where Name=项目名称 And ID=OBject_ID( '教材管理卡片编辑 ')) then ' '
else case
when 项目类型 = '文本型 ' then ' varchar( ' + rtrim(项目长度) + '), '
when 项目类型 = '数字型 ' then ' int '
end end from table1
set @sql=left(@sql,len(@sql))
print @sql
exec(@sql)