普段C#などからLINQ to SQLやLINQ to Entity、DapperなどのO/Rマッパーを使っているとあまり気にしないのですが、SQLを直接書くときに稀に改行やタブなどのエスケープ文字を入力したい場合があります。特に難しくないのですが、(特にANSIコードを)よく忘れてしまうのでメモ。
やり方
やり方は至って簡単で、char構文を使ってANSIコードを文字に変換するだけです。これを改行やタブなどを入れたいところに文字列結合として記述すれば出来上がりです。
insert TableName ( ColumnName ) values ( 'if (you.CanLove(sql))' + char(13) + char(10) + -- 末尾に改行コードを挿入 char(9) + 'you.ShouldTry(this);' -- 先頭にタブを挿入 ) /* if (you.CanLove(sql)) you.ShouldTry(this); */
よく使うエスケープ文字
よく使うと思われる特殊文字をまとめておきます。このANSIコードをホントによく忘れてしまう、というか全然覚えられない...。
意味 | エスケープ文字 | ANSIコード |
---|---|---|
null文字 | ¥0 | 0 |
バックスペース | ¥b | 8 |
タブ | ¥t | 9 |
ラインフィード | ¥n | 10 |
キャリッジリターン | ¥r | 13 |
二重引用符 | ¥" | 34 |
一重引用符 | ¥' | 39 |