我公司服务器上有不同数据库(在同一实例上)供不同门店使用,在实际操作中遇到如下问题:每一个数据库的结构和表格都完全相同,有时需要批量更新各数据库中的同一张表的内容,如何操作。
例如:
有数据库depart01,depart02,depart03等,其中每个数据库中都有SPML这个表,其中SPML中有BH,PM等字段。有时需要批量更新PM,单个更新时我可以这样写:
USE depart01
UPDATE SPML SET PM='相应名称' WHERE BH='相应名称'
但如果我要同时把这些数据库中的某个BH对应的PM,我该如何修改呢!
请各位高手给个解答,在此先谢过!
谢谢四楼的答案,此方法可行,太感谢了,现在还有一个问题就是:
我要在spml中PM字段中加一个符号,那语句该怎么改呢,我平时针对特定数据库是这样写的:
USE depart01
UPDATE SPML SET PM=REPLACE(PM, PM, '$' + PM) WHERE BH IN ('A0000-10','B0000-10','C0000-10')AND PM NOT LIKE '%$%'
请问四楼的大侠,批量更新数据库时,这个语句该如何写呢?感激不尽!
UPDATE depart01..UPDATE SPML SET PM='相应名称' WHERE BH='相应名称'GoUPDATE depart02..UPDATE SPML SET PM='相应名称' WHERE BH='相应名称'GoUPDATE depart03..UPDATE SPML SET PM='相应名称' WHERE BH='相应名称'你是不是想表达这个意思?
可以用游标解决:declare @dbname nvarchar(20)declare curdb cursor forselect name from master..sysdatabases where name like 'depart%' --找出所有要更新的数据库open curdbfetch next from curdb