• ベストアンサー

値がこの列の整合性制約に違反しました

SqlServerの「インポートおよびエクスポート」ウィザードで エクセルのデータをインポートする時に起こりました。 nvarchar(8) のフィールドに Double型のデータのインポートはうまくいきました。 nvarchar(8) のフィールドに VarChar型のデータのインポートはうまくいきました。 ですが、VarChar型とDouble型が混在しているとタイトルにあるエラーが起こりました。 エクセルで数値データが入っているとインポートウィザードでは勝手にDoubleにするらしく 回避する方法がわかりません。 どうすればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hogya
  • ベストアンサー率67% (49/73)
回答No.2

確かに「なぜ」なのかは不明ですが、情報が足りないのかも知れません。(SQLServer、Excelのバージョンやデータの中身等) 現状、質問から読み取れる内容でやってみた画像を添付しておきます。 ちなみに、SQLServer2008、Excel2003です。 画像中の「B列」が数値と文字データが混在する列です。当方では「'」がないデータはDoubleと認識しますが、「'」を付けたデータではVarCharと認識されました。

sara_seiji
質問者

お礼

再度試してみたところ、ちゃんとVarCharと認識してくれました。 色々試していたのでどこかで抜けがあったのかもしれません。 無事に文字データとして認識しました。 ありがとうございました。

その他の回答 (1)

  • hogya
  • ベストアンサー率67% (49/73)
回答No.1

セルの値の先頭に「'」を追加して文字列データとして認識させてみてはどうでしょう。

sara_seiji
質問者

お礼

回答有り難うございます。 ですが、セルの値の先頭に「’」を追加しても、 SqlServerの「インポートおよびエクスポート」ウィザードでは、 なぜか、数値データ(Double型)として認識してしまいます。 他の手段はないでしょうか?

関連するQ&A