シリーズ目次
前置き
SQLSERVERでは下図のように、メニューからテーブルのCreateスクリプトを出力することができます。データベース>(出力したいテーブルがあるデータベース)を右クリック>タスク>スクリプトの生成
しかし、Gitでソース管理するときに、こんなの毎回画面からやってたらめんどくさくてしょうがないのです。
コマンド一発で出せるようにしておきたいのです。
PowerShellでテーブルCreateスクリプトを出力
んで調べてみたところ、Microsoftさんはちゃんと用意してくれてました。https://docs.microsoft.com/ja-jp/sql/relational-databases/server-management-objects-smo/tasks/scripting?view=sql-server-ver15
今回はPowerShellでやってみます、といってもほぼ写経ですがw
この「Scripter」ってやつは、そのまま実行するとcreate文だけが帰ってきます。それを書き出しただけです。
Scripterの引数には各tableオブジェクトを突っ込むのですが、SMOからdatabaseオブジェクトを経由して、tablesオブジェクトを取得できます。あとはforeachで回すだけ。
できあがったファイルを見てみましょう。
Accessテーブルをインポートしたまんまなので、テーブル定義自体はかなり適当になっちゃってますが、んーちゃんとできてますね!
ちなみにC#でも同様のことができ、実務ではそちらを使いました。DLLにしてpowershellから実行です。
C#、VBA、powershellあたりは、すべて使い回しが効くから便利ですね!!
0 件のコメント:
コメントを投稿