首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

往数据表插入列解决思路

2012-01-10 
往数据表插入列现有一个数据表talbe1ID项目类型长度1计量单位字符202数量数字4....................起始时

往数据表插入列
现有一个数据表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)

热点排行