0

これを行う最善の方法についてアドバイスが必要です。

現在、MSSQL 2012 には、区切られたデータ ファイルを一時テーブルに一括挿入し、さまざまなテキスト/数学ロジックを介してすべての行をライブ データ テーブルに処理する clr プロシージャがあります。

完了したら、作成したテーブルを削除したいと思います。DROP TABLE xxx は、次のエラーが発生する場所です。

Msg 6522, Level 16, State 1, Procedure SyncAgents, Line 0
A .NET Framework error occurred during execution of user-defined routine or aggregate "SyncAgents": 
System.Security.HostProtectionException: Attempted to perform an operation that was forbidden by the CLR host.

The protected resources (only available with full trust) were: All
The demanded resources were: ExternalThreading

System.Security.HostProtectionException: 
   at StoredProcedures.SyncAgents()
.

基本的には、UNSAFE である必要があることを意味します。これは私が避けたいことです。質問は次のとおりです。

このテーブルを使い終わった後、このテーブルを削除する最良の方法は何ですか? それはスケジュールされたタスクであるべきですか?それを行うために設定できるある種の巧妙なトリガーはありますか?

キュー (単純な varchar/bit with tablename/isprocessed テーブル) を調べて、そのキューに基づいてドロップを実行するスケジュールされたプロシージャを作成することを考えています。

私は最初から問題を間違って考えていますか?

あなたの提案をいただければ幸いです。

4

1 に答える 1

0

#ユーザーテーブルではなく、適切な一時テーブル(つまり、プレフィックスが付いたテーブル)を使用する場合は、必要な権限があります。

于 2012-08-20T19:28:06.367 に答える