例如有一个数据库,其中包含n个数据表,每个表中都有一个idcard字段(身份证字段),但在有的表中字段名是menidcard,或者是womenidcard 现在是想实现:当修改一个人的身份证号码时,这n个数据表中所有有关这个人的身份证号码要同时都修改。
举例如下:
表person里其中一个叫“张三”的idcard='123456789123456789',表employeemen里也有叫“张三”的menidcard='123456789123456789'
如果现在修改张三的身份证号码为:'123456789123456700',那么就是这n个表先查找固定的字段'idcard'或者'menidcard'或者'womenidcard ',然后在查找原来这个字段值='123456789123456789',然后改为:idcard='123456789123456700' menidcard='123456789123456700'
请问(用存储过程)如何实现?
------解决方案--------------------
这个和注入类似,
替换所有的数据
贴一个给你参考:
- SQL code
DECLARE @fieldtype sysnameSET @fieldtype='varchar'--删除处理DECLARE hCForEach CURSOR GLOBALFORSELECT N'update '+QUOTENAME(o.name) +N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'FROM sysobjects o,syscolumns c,systypes tWHERE o.id=c.id AND OBJECTPROPERTY(o.id,N'IsUserTable')=1 AND c.xusertype=t.xusertype AND [email protected]EXEC sp_MSforeach_Worker @command1=N'?'
------解决方案--------------------
查询系统表后,用游标去更新