思考停止するな

ネットワークとかアプリケーションとかWebとか

sqlcmdのオプションについて

sqlcmdのオプションについて勉強したのでメモ。

内容は以下のサイト(SQLCMDユーティリティ)から引用し、自分向けにまとめただけ。
https://msdn.microsoft.com/ja-jp/library/ms162773.aspx

-H ワークステーション
-j 画面に生のエラーメッセージを出力
-K サーバーに接続するときのワークロードのタイプ
-M SQLServer可用性グループまたはSQLServerフェールオーバー クラスタインスタンスの可用性グループリスナーに接続する際には、必ず -M を指定
-N 暗号化された接続を要求
-P パスワード
-U ユーザー名
-z パスワードの変更
-f 入力と出力のコードページの指定
-i スクリプトファイル
-o 出力ファイル
-r エラーメッセージ出力を画面にリダイレクト
-R 各列をローカライズ
-u 出力ファイルをUnicode形式にする
-e 入力スクリプトを標準出力デバイスに書き込み
-I SET QUOTED_IDENTIFIER 接続オプションをON
-q 起動時にクエリを実行
-Q 起動時にクエリを実行しsqlcmdを即時終了
-t 実行待ち時間を秒単位で指定
-x スクリプト変数を無視
-h ヘッダーについて。-1でヘッダ非表示
-k すべての制御文字を出力から削除
-s 列の区切り文字を指定
-w 出力用の画面幅を指定
-W 列から後続の空白を削除
-y QLCMDMAXVARTYPEWIDTHを設定
-Y SQLCMDMAXFIXEDTYPEWIDTHを設定
-b エラー発生時にsqlcmdを終了し、DOS ERRORLEVEL値を返す
-m 重大度レベルがこのレベル以上のメッセージが送信
-V 使用される重大度レベルを制御
-a 異なるサイズのパケットを要求
-c バッチターミネータを指定
-L ネットワーク上でブロードキャストしているコンピューター名の一覧を表示
-p パフォーマンス統計を出力
-X バッチ ファイルからの実行の場合、システムのセキュリティを損なう可能性のあるコマンドを無効にする
-? sqlcmdのバージョンとオプションの構文の概要を表示
-S 接続先となる SQL Serverインスタンス
-d データベース

TRUNCATEとは

SQLのTRUNCATE(トランケート)についてです。

TRUNCATEは個々の行の削除ログに記録せず、テーブルから全ての行を削除する。
データの件数の関係なく非常に高速にデータを削除できるようだ。

行の削除には他にもDELETE(デリート)もある。
この2つの違いには、処理速度がある。
TRUNCATEはDELETEに比べると高速で処理がされる。
しかし、TRUNCATEはWHERE句などによる絞り込みができず、全行削除しかできないらしい。

勉強になりました。