質問: ### 前提・実現したいこと 初めて利用させていただきます。C#を勉強している初心者です。 初めてDBを触るので手探り状態で行っておりますが、DBを使って社員の情報を登録するアプリを試作しています。 本題なんですが、.mdfでテーブルを追加し、その中に社員番号を主キーと設定した社員情報の項目?を作成しました。社員番号にアルファベットが含まれているためint型ではなくchar型に設定したところ、以下のエラーメッセージが表示されます ### 発生している問題・エラーメッセージ ``` データ型は小数点以下桁数が 0 の int、bigint、smallint、tinyint、decimal、または numeric である必要があります。 ``` ### 該当のソースコード ``` [Id] CHAR(4) IDENTITY (1, 1) NOT NULL, ``` ### 試したこと ネットで調べても、別のDBについて(Oracle,MySQL)の記事しか見当たらず、それについてはcharや他の値に変更できるみたいです。 ### 補足情報(FW/ツールのバージョンなど) Visual Studio 2015 を使っています やはり他のDBを使ったほうがよいのでしょうか。 皆様のおかげで無事解決しました。 IDENTITYをそのまま設定していたのがいけなかったみたいです。 (IDENTITYが主キーなのかと思い込んでました。(1,1)については深く考えていませんでした) [Id] CHAR(4) ~~IDENTITY (1, 1)~~ NOT NULL, //他の項目・・・ CONSTRAINT [PK_Table] PRIMARY KEY ([Id]) と修正したところ~~コンパイルが通るようになりました。~~データベースの更新ができました。 ありがとうございました!
回答: 他の方の仰るとおりIDENTITY (1, 1)はcharに使えません。 桁数が不定ならvarcharの方が融通がききますし入る文字によってはnvarcharの方がいいです。 そもそもなんですがSQLServerを使うならSSMSみたいな管理ツールにGUIが付属しているのでそちらで作成されてはどうでしょうか