Symfoware

Symfowareについての考察blog

SQL Server 2008 R2 Express コマンドでデータベースとテーブルを作成する(sqlcmd)

Microsoft SQL Server 2008 R2 RTM - Expressをインストールしてみました。
Microsoft SQL Server 2008 R2 RTM - Expressをインストールする

また、以前SQL Server 2008でManagement Studioを使用してGUIで
データベースとテーブルの作成を行っています。
SQL Server 2008 データベースとテーブルの作成方法


これはこれでよいのですが、

・GUIだと、同じ操作を繰り返したいとき困る。
・テストに使っている端末が貧弱なので、Management Studioの起動が重い。
・男は黙ってCUI


ということで、コマンドプロンプトからSQL Serverの
データベースとテーブルを作成する方法を調べてみました。





sqlcmd



調べてみると、「sqlcmd」というコマンドが使えそうです。
sqlcmd ユーティリティ

バイナリの実体は

<ドライブ>:\Program Files\Microsoft SQL Server\100\Tools\Binn


にインストールされるようですが、たぶんインストール時に
パスが通されているはずです。

もっとも簡単なコマンドの形式は

sqlcmd -E -S [サーバー名]\[インスタンス名] -i [SQLを記載したファイルのパス]



-Eは信頼関係接続を使用して SQL Server にログオンという意味ですが、
ユーザー名やパスワードを省略すると、自動的にこちらのモードが
使用されるようですので、このオプション自体省略可能です。

今回は、「WIN-9UJK3SHIFUD」というサーバーに「SQLEXPRESS」という
インスタンス名で、Windows認証モードでインストールしていますので、


sqlcmd -S WIN-9UJK3SHIFUD\SQLEXPRESS -i [SQLを記載したファイルのパス]



このコマンドを実行すれば、ファイルに記載したSQL文が実行されるはずです。





データベースのCREATE



データベースのCREATE文は、こちらを参考にしました。
CREATE DATABASE (Transact-SQL)

今回は、SAMPLEという名前のデータベースを作成することにします。
データファイルは、D:\data\sample_dat
ログファイルは、D:\data\sample_log
初期容量はそれぞれ、100MBと10MBにしました。


見よう見まねで作成したCREATE文はこちら。


USE master;
GO
CREATE DATABASE SAMPLE
ON
( NAME = sample_dat,
    FILENAME = 'D:\data\sample_dat.mdf',
    SIZE = 100MB,
    MAXSIZE = 500MB,
    FILEGROWTH = 10% )
LOG ON
( NAME = sample_log,
    FILENAME = 'D:\data\sample_log.ldf',
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 5MB ) ;
GO




データファイルの上限は500MB。空きが10%を切ったら自動拡張(のつもり)
ログファイルの上限は50MB。空きが5MBを切ったら自動拡張(のつもり)

ちなみに、テストなので容量の見積もりは適当。
拡張ルールも意図があって指定したものではありません。


上記の内容をD:\data\sample.sqlとして保存しました。




コマンドプロンプトを起動し、以下のコマンドを実行します。


sqlcmd -S WIN-9UJK3SHIFUD\SQLEXPRESS -i D:\data\sample.sql



02_001_20101114220024.png


エラーなく終了した模様。
D:\dataをエクスプローラーで表示すると、指定どおりのファイルが
作成されていました。

02_002_20101114220023.png


Management Studioを起動してデータベースの項目を確認すると、
ちゃんと「SAMPLE」というデータベースが追加されていると思います。

02_003_20101114220023.png




SAMPLEを右クリックしてプロパティーを表示してみます。

02_004_20101114220023.png
02_005_20101114220023.png


狙い通りのオプションでデータベースファイルが作成できました。






テーブルのCREATE



郵便番号を格納するテーブルを作成してみます。
テーブル名は「post_code」
フィールドは、「zip_code」と「address」の2つです。


USE SAMPLE;
GO

CREATE TABLE post_code (
    zip_code char(7) not null,
    address nchar(100) not null
);
GO



「USE SAMPLE;」で操作対象のデータベースを作成した
「SAMPLE」に切り替えます。

その後、post_code作成のクエリを実行します。


上記内容を、「D:\data\create_post_code.sql」というファイルを
作成し保存しました。


コマンドプロンプトを起動し、以下のコマンドを実行します。


sqlcmd -S WIN-9UJK3SHIFUD\SQLEXPRESS -i D:\data\create_post_code.sql




Management Studioで確認すると、狙い通りのテーブルが
作成できているようです。

02_006_20101114220023.png










関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2010/11/14(日) 22:02:38|
  2. SQL Server
  3. | トラックバック:0
  4. | コメント:2
  5. | 編集
<<Windows XPにVIX APIをインストールし、ESXとVMWareの情報を取得する | ホーム | Microsoft SQL Server 2008 R2 RTM - Expressをインストールする>>

コメント

SQLServer2008の操作について判りやすくて感謝

初心者にもわかりやすい情報をありがとうございました。
感謝。
  1. 2013/02/21(木) 10:58:44 |
  2. URL |
  3. 初心者 #-
  4. [ 編集 ]

Re: SQLServer2008の操作について判りやすくて感謝

こちらこそ、お役に立てたようで嬉しいです。
  1. 2013/02/27(水) 18:46:58 |
  2. URL |
  3. symfo #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/646-caa77df5
この記事にトラックバックする(FC2ブログユーザー)