我有多个数据库在同一数据库实例名下.这几个数据库结构完全相同,我现在需要在这些数据库中创建一个存储过程.请问有没有什么好的办法能用一个循环动态在所有数据库中创建这个存储过程,我在名为company数据库的db表中维护了这些数据库的名称,
我打算使用游标循环每条数据库,取出数据库名,然后动态创建存储过程.
请问有这种方法吗?

解决方案 »

  1.   


    --可以,取出后循环执行就可以了
    select name from sys.sysdatabases where name not in('master','tempdb','model','msdb')
    exec ('use databasename ...')
      

  2.   

    有一个未公开的函数xp_msforeachdb,不过这个是会遍历全部数据库,可以拼接字符串来实现选定数据库的执行。
      

  3.   

    技术探讨的话这个是可靠的.
    不过不建议这么使用.对DML而言还是一个一个的操作靠谱些.