1

フォームに主キー列yearがあります。

ユーザーが新しいフォームを作成するときはいつでも、ドロップダウンからこのフィールドに入力する必要があります。

ただし、ユーザーが間違いを犯し、ドロップダウンから何も選択しない場合は、null文字列が追加され""ます。また、事後操作が選択されると、レコードがデータベーステーブルに作成されます。

私の質問:
ユーザーが選択を行った後にデータベースに投稿すると、主キー列がnull文字列を受け入れることになります""

主キーフィールドにnull/空の文字列を含めることはできないため、これでエラーが発生することはありませんか?

テーブル作成スクリプトを確認したところ、列がに設定されてNot Nullおり、デフォルト値が割り当てられていません。

SQLServer2008を使用しています。

4

1 に答える 1

6

NULL空の文字列は、Oracleの場合とは異なり、SQLServerでは同義ではありません。PKは空の文字列を持つことができます。

もちろん、PKは一意である必要があるため、複合PKであり、他の列の値が異なる場合を除いて、そのような空の文字列は1つだけです。

挿入を試みる前にこれを検証する必要がありますが、防御の最後の行としてチェック制約を追加することができます。

于 2012-11-14T16:29:52.140 に答える