2011-09-12 34 views
0

ERROR MSG: OLE DBプロバイダ "Microsoft.Jet.OLEDB.4.0"がリンクされているため、要求された操作を実行できませんでしたserver "(null)"は、必要なトランザクションインタフェースをサポートしていません。

私はこのエラーの解決策を突きつけました(ERROR MSGを参照)。ここ
は、私のコードの一部です:リンクされたサーバー "(null)"のOLE DBプロバイダ "Microsoft.Jet.OLEDB.4.0"

..... 
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; 
     Database=C:\Folder\file_output.xls', 
     'SELECT * FROM [Sheet1$]') 
     SELECT FROM FIELD1, FIELD2, FIELD3 dbo.MY_TABLE 
     WHERE TRANS_ID = 1 
     ORDER BY CTRL_NO ASC 
..... 

上記のコードは、SPの内部に収容されている...これはSPの一連の呼び出しで実行される最後のSPです。
ここにチェーン/実行フローがあります:SP1-> SP2-> SP3-> SP4(SP4に上記のコードが含まれていると仮定します)
エラーメッセージは、実行フロー全体でエラーメッセージとして表示されます。

ここでは、エラーをテスト/トレースしようとした2つのシナリオを示します。
- SPのチェーンを実行---->結果:エラーが発生しました
- コメント/ SP4を削除し、SP1-> SP2-> SP3のみを実行します。次に、SP4を個別に実行します。 ---->結果:大丈夫

PLS。注:フローでSPを実行する必要があります。
SQLランナーを通じてSP1が実行される点を除いて、Web /フロントエンドはありません

これはMS SQL Server 2008のバグか何か不足していると思います。
私の質問がまだあいまいであれば、私に質問してください。ありがとう。

答えて

0

「サーバーオブジェクト - リンクサーバー - プロバイダー - Microsoft.Jet.OLEDB.4.0」プロパティの「非トランザクション更新」オプションをチェックしてみてください。おそらく、SQL Serverを再起動する必要があります。

関連する問題