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

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

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

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


狙い通りのオプションでデータベースファイルが作成できました。
テーブルの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で確認すると、狙い通りのテーブルが
作成できているようです。

- 関連記事
-
- SQL Server 2008 R2 Express 郵便番号データロードの考察1
- SQL Server 2008 R2 Express コマンドでテーブルに郵便番号データをロードする(bcp)
- SQL Server 2008 R2 Express コマンドでデータベースとテーブルを作成する(sqlcmd)
- Microsoft SQL Server 2008 R2 RTM - Expressをインストールする
- Visual Basic 2010 ExpressからSQL Server 2008 Expressに接続する
コメント
SQLServer2008の操作について判りやすくて感謝
感謝。
2013/02/21 10:58 by 初心者 URL 編集
Re: SQLServer2008の操作について判りやすくて感謝
2013/02/27 18:46 by symfo URL 編集