8

VS2010 (シェル) と SQL Server 2005 (32 ビット) から SQL Server 2012 (64 ビット) に移行するデータベースで SSIS を使用しています。宛先サーバーで直接開発しています (最適ではありませんが、動作します)。

データベース転送タスクを使用しようとすると、次のようなエラー メッセージが表示されます。 Execute メソッドは成功し、"out" パラメータを使用して結果を示す必要があります。」 エラーメッセージ

ここに問題があります...「内部例外」を表示するにはどうすればよいですか?? これは、コードをステップ実行する方法のない GUI インターフェイスです。ログの設定も試してみましたが、同じ役に立たないエラー メッセージがログに記録されるだけです。

Microsoft のリファレンス ドキュメントには、このエラー コードに関する情報はありません (私が見つけたものです)。

エラー コードを Google で調べたところ、他のユーザーがこのエラー コードと、ユーザー、ロール、およびそれらの作成に関係するメッセージを持っていることがわかりました。

  • 両方のサーバーでsysadmin権限を持っていることと、両方に
    ログインしていることを再確認しました。
  • 各サーバーからそれ自体に同じデータベース転送タスクを(データベース名を変更して)試してみましたが、両方うまくいきました。
  • DatabaseOnline と DatabaseOffline の両方のオプションを試しました。(両方とも同じエラー)
  • データベース転送タスクを実行する前に「ログインの転送」タスクを実行しようとしましたが、そのタスクは機能しましたが、データベース転送タスクは機能しませんでした。次に、データベースが存在しないというエラーをスローし始めました。これは、データベースを転送した後にログインを転送する必要があることを意味します。

ここに私の設定があります:ここに画像の説明を入力

私は何を間違っていますか?または、「内部例外」メッセージを取得するにはどうすればよいですか?

また、 Microsoftのフォーラムへの私の投稿をフォローして ください。

4

5 に答える 5

6

この答えは私を胃にうんざりさせます...私はこの面倒を他の誰かに救いたいと思います。問題はこれでした:

  1. 何よりもまず、エラー メッセージの説明が不十分でした。エラーはインターフェイスに渡される必要があります。
  2. 「データベースの転送」タスクの「編集」では、転送先のファイル パスに転送元データベースのファイル パスが「自動入力」されます。彼らは、最初 (そして 2 回目、3 回目...) をざっと見ただけで正しく見えます。さらに調べたところ、ファイル パスが間違っていました。これは、バージョンからバージョンへと移行する場合に意味があります。フォルダーの名前は、バージョン ( MSSQL.1vs. MSSQL11.<instanceName>) に応じて微妙に異なります。

要約すると、パスが間違って設定されたため、フォルダーが存在しないことがエラーの原因でした。このような他の低レベルの例外も、同じ不可解なエラー メッセージでインターフェイスによって食べられると思います。

于 2012-06-07T19:51:01.847 に答える
1

'0000-00-00 00:00:00'MySQLデータベースの列には有効な日付が常に存在するという人がいて、後でやのような日付があることがわかりました'0001-01-01 00:00:00'

case ステートメントを使用してデータを取得し、不適切な日付を SSIS が使用できる日付に変換するクエリで処理しました。

CASE WHEN Product.PurchaseDate < '1900-01-01 00:00:00' THEN '1900-01-01 00:00:00' ELSE Product.PurchaseDate END AS PurchaseDate

もちろん、nullあなたの好みに設定することもできます。

于 2012-10-10T21:16:24.297 に答える
0

「これは、データベースを転送した後にログインを転送する必要があることを意味します。」

実際には、ログインはサーバー (インスタンス) レベルで行われるため、ログインを転送してからデータベースを転送できます。もちろん、後でユーザーについて心配する必要があります

ここでのポイントは、SSIS が 2005 年から 2012 年に移行する準備ができているとは思わないということです。つまり、バージョンを「スキップ」するのは意味がありません。VS 2012 を使用していると言ったので、SSIS 2012 になります。2008 年のデータベースしか読み取れないと考えられます。同じサーバーでテストして動作したという事実も、この点をより強くします.

于 2012-06-06T09:53:10.887 に答える