0

代わりに、カーソルをセット操作に置き換える必要があるシナリオが 2 つあります。

誰かがこれについて何か考えを持っているかどうかを知る必要があります. 困っています。

  1. トリガーの名前とそれに関連するテーブルを保持するテーブルがあります。それらを無効または有効にする必要がありますが、現在、カーソルを使用してループし、

    disable trigger 
    
    enable trigger 
    

    これらを一連のデータを渡すように呼び出す方法はありますか?

  2. カーソルを使用して一連のデータを保持し、@name を行ごとに取り出すような一時テーブルが挿入されています。

    insert into @Tmp(name)
    exec usp_here @name, @value  -- this returns a single column 
    

-- 更新 --
ストアド プロシージャからクエリを取り出し、カーソルの代わりに CTE を使用して直接結合しました。これは 1 つのオプションでした。他にもありますか?

4

1 に答える 1

0

このプロセス全体がジョブとして実行されますか、それとも 1 つのコマンドから実行されますか?

1 つのコマンドを実行して 2 番目のステップをセットアップしても問題ないでしょうか?

もしそうなら、あなたはこのようなことをすることができます:

有効にする:

select 'enable trigger ' + [the trigger name] + ' on ' + [the object name]
from [your table]
where [how you identify the triggers]

-また-

無効にするには:

select 'disable trigger ' + [the trigger name] + ' on ' + [the object name]
from [your table]
where [how you identify the triggers]

これらは、トリガーを有効または無効にするために必要なすべてのコマンドのリストを提供します。これをSQLファイルに出力するか、出力をコピーして新しいクエリウィンドウに貼り付けてから実行できます。

于 2013-07-08T01:26:07.730 に答える