在工作中,我们需要对许多数据库执行相同的操作。我想编写 1 个 SP 来循环操作并将数据库设置在循环的开头(示例如下)。我试过 sp_executesql('USE ' + @db_id) 但这只是为该存储过程的范围设置数据库。我真的不想用硬编码的数据库名称循环,因为我们需要在许多不同的地方做类似的事情,如果我们添加另一个数据库,很难记住需要更改的地方。
任何想法>
示例:
DECLARE zdb_loop CURSOR FAST_FORWARD FOR SELECT distinct db_id from DBS order by db_id
OPEN zdb_loop FETCH NEXT FROM zdb_loop INTO @db_id
当@@FETCH_STATUS = 0 开始使用@db_id
--Do stuff against 3 or 4 different DBs
FETCH NEXT FROM zdb_loop INTO @db_id
结尾
关闭 zdb_loop DEALLOCATE zdb_loop