if ltrim(rtrim(@leiBie)) = ltrim(rtrim(@TiDaiZhe))
begin
if left(@_DanWeiBianhao,2)='11' and @MyNianDu='2007'
begin
set @lcstr = 'update #JieGuoBiao set ' + ltrim(rtrim(@BeiTiZhe)) + '=' + ltrim(rtrim(@BeiTiZhe)) + '+' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + ' where ' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + '> 0 and ' + '''' + @JiBie +'''' + ' = 医院级别 and ' + '''' + @ZhiCheng + '''' + ' = 职称'+' and 标准序号='+cast(@biaozhunxuhao as varchar(2))
set @lcstr =@lcstr+' and exists (select 人员编号 from #tmppeoplecur where #tmppeoplecur.人员编号= #JieGuoBiao.人员编号)'
-- drop table #tmppeople
end
else
begin
set @lcstr = 'update #JieGuoBiao set ' + ltrim(rtrim(@BeiTiZhe)) + '=' + ltrim(rtrim(@BeiTiZhe)) + '+' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + ' where ' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + '> 0 and ' + '''' + @JiBie +'''' + ' = 医院级别 and ' + '''' + @ZhiCheng + '''' + ' = 职称'+' and 标准序号='+cast(@biaozhunxuhao as varchar(2))
end
exec(@lcstr)
begin
if left(@_DanWeiBianhao,2)='11' and @MyNianDu='2007'
begin
set @lcstr = 'update #JieGuoBiao set ' + ltrim(rtrim(@BeiTiZhe)) + '=' + ltrim(rtrim(@BeiTiZhe)) + '+' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + ' where ' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + '> 0 and ' + '''' + @JiBie +'''' + ' = 医院级别 and ' + '''' + @ZhiCheng + '''' + ' = 职称'+' and 标准序号='+cast(@biaozhunxuhao as varchar(2))
set @lcstr =@lcstr+' and exists (select 人员编号 from #tmppeoplecur where #tmppeoplecur.人员编号= #JieGuoBiao.人员编号)'
-- drop table #tmppeople
end
else
begin
set @lcstr = 'update #JieGuoBiao set ' + ltrim(rtrim(@BeiTiZhe)) + '=' + ltrim(rtrim(@BeiTiZhe)) + '+' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + ' where ' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + '> 0 and ' + '''' + @JiBie +'''' + ' = 医院级别 and ' + '''' + @ZhiCheng + '''' + ' = 职称'+' and 标准序号='+cast(@biaozhunxuhao as varchar(2))
end
exec(@lcstr)
--截断所有尾随空格后返回@leiBie和@TiDaiZhe,然后再删除起始空格后返回@leiBie和@TiDaiZhe,判断@leiBie是否等于@TiDaiZhe
begin
if left(@_DanWeiBianhao,2)='11' and @MyNianDu='2007'
--字符串左边开始指定个数的字符@_DanWeiBianhao从左开始,返回2个字符,返回的字符=11,并且@MyNianDu='2007'
begin
set @lcstr = 'update #JieGuoBiao set ' + ltrim(rtrim(@BeiTiZhe)) + '=' + ltrim(rtrim(@BeiTiZhe)) + '+' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + ' where ' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + '> 0 and ' + '''' + @JiBie +'''' + ' = 医院级别 and ' + '''' + @ZhiCheng + '''' + ' = 职称'+' and 标准序号='+cast(@biaozhunxuhao as varchar(2))
--拼更新的SQL语句convert,cast就是类型转换
set @lcstr =@lcstr+' and exists (select 人员编号 from #tmppeoplecur where #tmppeoplecur.人员编号= #JieGuoBiao.人员编号)'
-- drop table #tmppeople
end
else
begin
set @lcstr = 'update #JieGuoBiao set ' + ltrim(rtrim(@BeiTiZhe)) + '=' + ltrim(rtrim(@BeiTiZhe)) + '+' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + ' where ' + ltrim(rtrim(@leiBie)) + '-' + ltrim(rtrim(convert(char,@XueFen))) + '> 0 and ' + '''' + @JiBie +'''' + ' = 医院级别 and ' + '''' + @ZhiCheng + '''' + ' = 职称'+' and 标准序号='+cast(@biaozhunxuhao as varchar(2))
--拼更新的SQL语句convert
end
exec(@lcstr)--执行拼的SQL语句
end
看看是什么?
應改就可以看懂了
不同情况下更新临时表#JieGuoBiao。
exec(@lcstr) :执行更新语句。
这样说可以理解吗