119

SQL Server 2008 で次の SQL コマンドを使用して、外部キー制約を持つテーブルを更新するとします。

ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)

UserIDEmployeesテーブル内の私の FK 列です。テーブルでを参照しようとしUserIDていActiveDirectoriesます。次のエラーが表示されます。

外部キー 'UserID' は、参照テーブル 'Employees' の無効な列 'UserID' を参照しています。

4

7 に答える 7

204

エラーは、Employees テーブルに UserID 列がないことを示しています。最初に列を追加してから、ステートメントを再実行してください。

ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
    REFERENCES ActiveDirectories(id);
于 2012-04-30T19:37:34.353 に答える
22

多分あなたはあなたの列を後方に持っていますか??

ALTER TABLE Employees
ADD FOREIGN KEY (UserID)           <-- this needs to be a column of the Employees table
REFERENCES ActiveDirectories(id)   <-- this needs to be a column of the ActiveDirectories table

列がテーブルとテーブルで呼び出さIDれている可能性がありますか?EmployeesUserIDActiveDirectories

次に、コマンドは次のようになります。

ALTER TABLE Employees
ADD FOREIGN KEY (ID)                   <-- column in table "Employees"
REFERENCES ActiveDirectories(UserID)   <-- column in table "ActiveDirectories" 
于 2012-04-30T19:39:31.677 に答える
5

MySQL / SQL サーバー / オラクル / MS アクセス:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

FOREIGN KEY 制約の命名を許可し、複数の列で FOREIGN KEY 制約を定義するには、次の SQL 構文を使用します。

MySQL / SQL サーバー / オラクル / MS アクセス:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
于 2015-06-23T13:11:19.487 に答える
0

ActiveDirectories(id) に適した外部キ​​ーの作成方法です。主な間違いは、ActiveDirectories テーブルで id の主キーについて言及していないことだと思います

于 2016-12-01T10:59:55.550 に答える