職場には、同じ操作を実行する必要のあるデータベースがいくつかあります。操作をループし、ループの最初にデータベースを設定する1つのSPを作成したいと思います(次の例)。sp_executesql('USE' + @db_id)を試しましたが、それはそのストアドプロシージャのスコープのDBのみを設定します。多くの異なる場所で同様のことを行う必要があり、別のDBを追加した場合にどこを変更する必要があるかを覚えておくのは難しいため、ハードコードされたデータベース名でループすることはあまりありません。
任意の考え>
例:
DECLARE zdb_loop CURSOR FAST_FORWARD FOR SELECT個別のdb_idとDBSの順序(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
終わり
CLOSE zdb_loop DEALLOCATE zdb_loop