SQLserver2008のchar型の桁数
###やりたい事
char(2)の項目を半角英数字のみを許容している。
半角カナも許容したい。
###試してみた事
char(2),nchar(2)のテストテーブルを作成して実際にデータをinsertしてみた。
結果、char(2),nchar(2)ともに半角カナは登録できた。
また、UNICODE指定してもinsertできた。
1.insert into test values ('アア','イイ') 2.insert into test values (N'アア','イイ') 3.insert into test values ('アア',N'イイ')
いづれもエラーにならなかった。てっきり、2のinsert文でエラーになると想定していた。
さらに
4.select DATALENGTH('アア') -- 結果は2 5.select DATALENGTH(N'アア')-- 結果は4
###わからないこと
char(2)は2byteサイズなので'アア'は設定できてもUNICODE指定して、N'アア'とすると4byte必要
というのが私の解釈なのですが、なぜかinsertでエラーとならず、登録できるのです。。。
###最終的な目的
やりたい事が、問題ないことを論理的に説明したい。
今のままだとどうしても、腹に落ちなくて。。。
ひとまず、ここまで読んでくださってありがとうございます。
場合によっては、さくっと説明できる内容ではないのかもしれませんがその場合はヒントでもいいのでご教示ください。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/21 04:36