要件:10〜50個のテーブル名(異なるサーバーのスキーマとサーバー(リンクサーバーを使用する)からProd to TestまたはDev環境のリフレッシュ要求を通常。基礎SQL Server - 異なるサーバーと異なるスキーマからのテーブルデータのリフレッシュ
例:私たちは持っている3スキーマのと呼ばれるDBO、他の環境のように、我々はなどschemacのとSchmaDこのため
私は以下のスクリプトを使用していますなど、異なるスキーマ名を持つSCHEMA1とPRODでスキーマ2一重引用符で表名を取得する。
手順1:
は@String VARCHAR(8000)= 'schemaname.table1、schemaname.table2、schemname.table1s45k'
設定@String = '' '' +交換してください(@String、」、 ' ''' を宣言し、 '' ')+ '''」
選択@String
ステップ2:私は、私たちのbkpdataベーステーブル内のバックアップ既存のテーブルのデータをでしょう。
ステップ3:私はリンクサーバーEXの助けを借りて、開発/テスト環境に生産からデータを移動します:私はバックアップされたテーブルに
ステップ4切り捨てられますのdevのボックスに
をデータベース名に挿入します。 schemaname.tablename select * from linkedservername.schemaname.tablename
Tablenames、databasename、linkedservername、およびschema nameファシリティのようなパラメータ機能を使用して動的SQLコードを取得できるといいでしょう。
他のオプションも高く評価されます。
追加詳細:
宣言@String VARCHAR(8000)= 'schema1.rnd、schema2.test'
設定@String = '' '' +交換してください(@String、 '' 、 ' ' '' ')+ ''''
宣言@Stringsテーブル(名VARCHAR(MAX)) @strings 挿入
を@String選択する選択 '切り捨てテーブル '+'' をsys.tablesの名前+名前(名前を@stringsから選択)
結果をTruncate table Tablenameとして表示します。だから私は結果を実行したくないので、出力自体を実行する必要があります。動的SQLが役立つでしょう。
正確な要件は何ですか? – Poonam
Sure Poonam。返信ありがとう。スキーマ1.表1の生産データを開発環境のスキーマc.table 1に移動する必要があります。テーブルの数が少ない場合、インポートのエクスポートを使用するか、selectに挿入することができますが、いくつかのテーブルを作成する必要があります。 – Franklin