在SQL2005里如何批量修改所有数据表里某一字段值
我想修改供应商编码,但是数据库里有50多个表与供应商编码关联。问题补充:SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.COLUMNSWHE...
我想修改供应商编码,但是数据库里有50多个表与供应商编码关联。
问题补充: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = c_gid 用网上的语句查出来了数据库里含有字段c_gid的所有表,但是我要把查出来的所有表字段c_gid对应的某个值,改为另一个数值。因为要50多个表,一个一个改太麻烦了。求高人指点啊。最好给个详细语句。QQ 157925826 展开
问题补充: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = c_gid 用网上的语句查出来了数据库里含有字段c_gid的所有表,但是我要把查出来的所有表字段c_gid对应的某个值,改为另一个数值。因为要50多个表,一个一个改太麻烦了。求高人指点啊。最好给个详细语句。QQ 157925826 展开
1个回答
展开全部
写一个SQL脚本,把你用上面语名查到的所有表的表名作变量逐一赋给一个UPDATE语句,直到修改完成。。。。最好写入事务操作方式,如果任一操作不成功,将回滚所有修改。
更多追问追答
追问
可以具体些吗?我是菜鸟,因为修改不是只修改一次。
追答
主干语句:
update 表名 set (表名.)c_gid=(你想要的值) where c_gid=(以前的、你要查某个值)
表名就是你在 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = c_gid 中查出来的表的名称。以后你可以有二个方法:1、把上表的表名拷到一个文件中缓存下来,逐个手工拷贝、粘贴,再运行,这样做出错、出漏几率大些;2、如果你会写SQL脚本,把表名设成一个变量,做一个循环,把所有相关表的表名赋进主干语句,在循环体的前后启用事务(Transaction)操作,这样最安全。
如果你是菜鸟,用第一种方法吧,先测试好,做起来还是很快的,但仔细很关皱键,后面的方法等你熟练了以后再试。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询