2012-01-03 27 views
0

テーブルのスキーマのバックアップを作成する方法を見つける必要があります。私はTransfer SQL Serverオブジェクトを使ってこれをしようとしていますが、パッケージ内でこのタイプのコントロールフロー項目を使用するときに、特定のソーステーブルとデスティネーションテーブルを指定してスキーマをコピーする方法がわかりません。私がこれを理解できたら、私はこれを自動的に実行するようにスケジュールします。私はこれに助けていただければ幸いです。ありがとう!SQL Serverエージェントジョブを通じてSSISパッケージを実行するとエラーが発生する

更新
ありがとうございました。私は次の問題を抱えています - 私はVisual Studioから実行すると、転送SQL Serverオブジェクトの制御フロー項目が動作しており、あるサーバー/データベースから別のサーバーにテーブル構造をコピーしています。私はこれをSSISパッケージとして作成し、元のサーバー(テーブル構造をコピーしたもの)にインポートしましたが、パッケージジョブを実行しようとすると、「サーバーへの接続に失敗しました。 。タスクの検証中にエラーが発生しました。パッケージの実行によってDTSER_FAILURE(1)が返されました。ステップが失敗しました。誰かがVisual Studioでうまく動作するが、仕事ではない理由を知っている人はいますか?

答えて

1

少し遅れていますが、この回答は他の人に役立つかもしれません。 BIDSでパッケージを実行しているときとジョブでパッケージを実行しているSQL Serverの間で実行の違いが生じる可能性があるのは少なくとも2つあります。

1)あなたのパッケージののProtectionLevelプロパティは、次のいずれかの値に設定されている
BIDSパッケージプロジェクトのpackage protection level

  • EncryptSensitiveWithUserKey
  • EncryptSensitiveWithPassword
    • DontSaveSensitive
    • EncryptAllWithPassword
    • EncryptAllWithUserKey
    • ServerStorage

    デフォルト値は、いくつかの非常識な理由EncryptSensitiveWithUserKeyためです。つまり、パッケージ内の機密情報は、パッケージを作成したユーザーの資格情報に基づいて暗号化されます。つまり、別のユーザー(パッケージを作成して保存していないユーザー)がパッケージを開いたり実行したりすると、エラーが発生します。つまり、パッケージに機密情報があるとします。

    だから、DontSaveSensitive(当社標準値)またはEncryptSensitiveWithPasswordような、より賢明なものに、このデフォルト値を変更したいです。

    2)SQL Serverエージェントジョブ
    で実行アカウントジョブステップウィンドウでフィールドとして実行するための標準的な値は、SQL Serverエージェントサービスアカウントです。このアカウントはconfiguredで、SQL Serverがインストールされ、権限が選択されたアカウントによって異なります。

    SQL Server Job Step

    だから、このアカウントはあなたのパッケージで定義されて何かをする権限を持っていないという場合である可能性があります。たとえば、別のデータベースサーバーに接続します。

    プロキシを設定することによって、パッケージを実行する別のアカウントを選択することができます。これに関する詳細は、StackOverflowの他の場所にあります。たとえば、hereを参照してください。

    関連する問題