SQL Server コマンド・バッチ、リモート関連

ダウンロードする種類

LocalDB
開発用。プログラミング機能。

Express
データーベースエンジンのみ。

Express with Management Tools
Management Studio が付属。

Express with Advanced Services
フルテキスト検索、Reporting Services 、Management Studio が付属。

Management Studio Express :
Management Studio本体。

実際のリンクは以下のような感じ。
Express 32BIT WoW64\SQLEXPR32_x86_JPN.exe(64bitOS用)
Express 32BIT\SQLEXPR_x86_JPN.exe
Express 64BIT\SQLEXPR_x64_JPN.exe

ExpressAdv 32BIT\SQLEXPRADV_x86_JPN.exe
ExpressAdv 64BIT\SQLEXPRADV_x64_JPN.exe

ExpressAndTools 32BIT\SQLEXPRWT_x86_JPN.exe
ExpressAndTools 64BIT\SQLEXPRWT_x64_JPN.exe

LocalDB 32BIT\SqlLocalDB.msi
LocalDB 64BIT\SqlLocalDB.msi

MgmtStudio 32BIT\SQLManagementStudio_x86_JPN.exe
MgmtStudio 64BIT\SQLManagementStudio_x64_JPN.exe

コマンドラインの場合

ダウンロードする種類

64ビット環境
JPN\x64\sqlncli.msi
JPN\x64\SqlCmdLnUtils.msi
の2つを保存

32ビット環境
JPN\x86\sqlncli.msi
JPN\x86\SqlCmdLnUtils.msi
の2つを保存

C:\Program Files\Microsoft SQL Server\110\Tools\Binn
にパスを通す

コマンドでの利用方法

sqlcmd /?
ヘルプ

sqlcmd -S サーバ名 -d DB名 -U user -P pass
sqlcmd -E -S HOST名\sqlexpress
または、
sqlcmd -E -S localhost\sqlexpress

接続

接続と同時にクエリを渡さないと、対話状態になる。

オプション

-E
はWindows認証
-Q
はインラインでSQL
-i
でSQLのファイルを渡せる。

基本の使い方

データベース一覧の表示
1> select name from sys.databases
2> go

データベースの指定
1> use my_database
2> go

テーブル一覧の表示
1> select name from sys.tables
2> go

バッチファイルでバックアップ

バッチファイルには以下を記述。
sqlcmd -E -S host名\sqlexpress -i “sql.txt”

sql.txt

バックアップ情報

バックアップ復元

リモート接続

ManagementStudioのオブジェクトエクスプローラ
サーバーのプロパティ
接続から、リモート接続を許可
セキュリティから、SQL Server認証とWindows 認証モード

ManagementStudioのオブジェクトエクスプローラ
セキュィティ
ログイン
プロパティから
全般で、パスワードを設定
状態で、ログインを有効化

サービスの設定から services.msc
SQL Server Browserを自動へ

SQL Server構成マネージャ
SQLEXPRESSのプロトコル
共有メモリ   有効
名前付きパイプ 無効
TCP/IP     有効

SQL Server構成マネージャ
SQLEXPRESSのプロトコル
TCP/IPのプロパティ
IPアドレスのページのIPALL
TCPポートを1433へ
TCP動的ポートを空白へ

firewall.cpl
新しい規則
ポート指定 -> 特定のポートを許可 -> 接続を許可 -> プライベートのみ選択
指定するポートは1433

接続できない場合の対応の1つ

「SQL Server が存在しないか、アクセスが拒否されました」というエラーで接続できませんでした。

1.Microsoft SQL Server 2005 → 構成ツール → SQL Server 構成マネージャ
→ SQLServer2005のネットワークの構成
→ プロトコル「TCP/IP」が“有効”になっているか確認

2・Microsoft SQL Server 2005 → 構成ツール → SQL Server セキュリティ構成
→サービスと接続のセキュリティ構成
→Database Engine の「リモート接続」が“ローカル接続及びリモート接続”になっているか確認

どうやらデフォルトでは「TCP/IP」は無効になっているよう。