2017-05-23 16 views
1

私は、SQL Server 2012を使用していると私は9桁の数字が10桁の値に対し、許可されているとint列(Filenum)(777777777)のようなSQL Serverのデータ型のInt

INSERT INTO Tbl (Filenum, Fname, Sname, Tname, Lname, DOB, NatID, SexID, AdrsCtryID, AdrsStateID, AdrLin1, FileStatID, MarStatID, OcupID, Email, SSnum, Passnum, TelMob, TelLnd, TelWrk, TelWrkExt, TelInt, strno, Direction, AptNo, locality, adminLvl, postalcode, Contr, UsrID, LogID) 
VALUES (@FileNum, @Fname, @Sname, @Tname, @Lname, @DOB, @NatID, @SexID, @AdrsCtryID, @AdrsStateID, @AdrLin1, @FileStatID, @MarStatID, @OcupID, @email, @SSnum, @Passnum, @TelMob, @TelLnd, @TelWrk, @TelWrkExt, @TelInt, @strno, @Direction, @AptNo, @locality, @adminLvl, @postalcode, @Contr, @UsrID, @LogID) 

値に値を挿入しようとしています私は、このエラーを与える

このセルで変更された値は、有効な.NET Frameworkのデータ型として認識されませんでした

INT32

なんで? 4バイトの符号付き整数のため

+2

32ビット符号付き整数は2147483648 –

+2

の最大値を持っているあなたは、プレーンテキストでSSNを格納していないことを教えてください。 –

+1

実際に私はそれを暗号化して保存します。はい、私が妥協している場合、ここで私を訂正してください。 – JSON

答えて

3

最大サイズ:2147483648

SQL Serverではbigintを使用してみてください、そして64ビットは.NETでのint longに署名しました。

参考:

+0

プロモーションのおかげでありがとうございました...私はこのフィールドをプライマリキーとして使用しています。リレーショナルDBのプライマリキーとして使用するのが最適です、私は正しいですか? – JSON

+1

@AhmadAbuMaizarこれは良い_clustering_キーです(主キーはSQL Serverではデフォルトでクラスタ化されています)。 'bigint'もうまくいくでしょう。 [常に増加するクラスタリングキー - クラスタ化インデックスの討論..........again! - Kimberly Tripp(http://www.sqlskills.com/blogs/kimberly/ever-increasing-clustering-key-the-clustered-index-debate-again/) – SqlZim

+0

ありがとう、私は本当にありがとうSSNを効率的に保存する方法について – JSON