联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
在项目中,要对相片档案资料进行归档(案卷号、件号、题名、归档人、归档日期,归档标示),在归档过程中要用到全文检索(用一个字段保存全文实现),把该数据从部门表复制到总表中,即要实现更新、汇总、复制功能于一体的存储过程:
ALTER PROC [dbo].[guidang] @tablename varchar(30), @id int , @tm varchar(500), @jh int, @t DATETIME , @ajh INT, @gdr VARCHAR(10) AS DECLARE @sql VARCHAR(2000) SET @sql='update <a href="mailto:%27+@tablename+%27" target="_blank">' +@tablename+'</a> set flag='''+CAST(3 AS VARCHAR(1))+''',gdr='''+@gdr+''', gdsj='''+CAST(@t AS VARCHAR(25))+''',jh='+CAST(@jh AS varchar(10))+', ajh='+CAST(@ajh AS VARCHAR(10))+',tm='''+@tm+''',textall=tm+'+ '''|'''+'+isnull(gjz,'''')+'+'''|'''+'+isnull(gjz,'''')+'+'''|''' +'+isnull(fsdd,'''')+'+'''|'''+ '+isnull(zyrw,'''')+'+'''|'''+'+isnull(psz,'''')+'+'''|''' +'+isnull(tgz,'''')+' +'''|'''+'+isnull(zrz,'''')+'+'''|'''+'+isnull(srz,'''')+' +'''|'''+'+isnull(bz,'''')+'+'''|'''+'+isnull(scr,'''')+'+'''|'''+ '+isnull(shr,'''')+'+'''|'''+' +isnull(gdr,'''')where id='+CAST(@id AS VARCHAR(10))+';insert into S_bm_all select * from <a href="mailto:%27+@tablename+%27" target="_blank">' +@tablename+'</a> where id='+CAST(@id AS VARCHAR(10)) EXEC(@sql)
在这个编写过程中,如果汇总项中,有一项为null,就会得到textall为null,这个困惑了我很久,最后发现了问题在这,用isnull函数解决问题,还有一个细节问题,“‘”有表示转义的意思