xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

SQLでエスケープ文字を挿入する

普段C#などからLINQ to SQLLINQ 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