现有一个数据表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)
上面的程序应怎样改,先判断要增加的列是否存在,然后再插入
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)
上面的程序应怎样改,先判断要增加的列是否存在,然后再插入
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)
declare @sql varchar(2000)
set @sql=''
select @sql=@sql+ case when exists(Select * from dbo.syscolumns Where Name=项目名称 And ID=OBject_ID('教材管理卡片编辑')) then '' else+ 'alter table 教材管理卡片编辑 add '+项目名称+case
when 项目类型 = '文本型' then ' varchar(' + rtrim(项目长度) + ') '
when 项目类型 = '数字型' then ' int'
when 项目类型 = '货币型' then ' money'
end end from 教材项目自定义
set @sql=left(@sql,len(@sql))print @sql
exec(@sql)
谢谢你给我提示