私は、UserIDと呼ばれる主キーとUserNameと呼ばれる別の列の2つの列を持つUsersテーブルを持っています。
どちらもユニークですが、他のテーブルでリファレンスとしてUserNameを使用する理由を考えました。たとえば、注文テーブルには、useridではなくUserNameによるuserへの参照があります。
SQL Serverのカスケード更新/削除機能を利用できるように、UserNameとUsersテーブルを参照するすべてのテーブル間にリレーションシップを作成します。
しかし、SQL Serverでは、非主キー列に関係を作成できません。 UserNameが主キーであり、UserIDではないように、usersテーブルを変更せずにカスケード更新/削除機能を取得する方法はありますか?
UserName
に一意のインデックスまたは一意の制約を作成すると、FK制約でそれを細かく参照できます。
あなたの声明
SQL Serverでは、非主キー列に関係を作成できません
間違っています。 SQL Serverは、FK関係に参加している列に一意のインデックスが定義されていることのみを考慮します。