tablas tabla sp_rename requieren recreación realizado que puedo permite modificar los llave impedir guardar foreign foranea crear column cambios sql-server-2008 foreign-key-relationship

sql server 2008 - tabla - SQL Agregar clave externa a la columna existente



rename table sql server (6)

¿Tal vez tienes tus columnas al revés?

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

¿Podría ser que la columna se llame ID en la tabla Employees , e ID UserID en la tabla ActiveDirectories ?

Entonces tu comando debería ser:

ALTER TABLE Employees ADD FOREIGN KEY (ID) <-- column in table "Employees" REFERENCES ActiveDirectories(UserID) <-- column in table "ActiveDirectories"

Si estoy usando el siguiente comando SQL en SQL Server 2008 para actualizar una tabla con una restricción de clave externa:

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

UserID es mi columna FK en la tabla Employees . Estoy tratando de hacer referencia al UserID de UserID en mi tabla ActiveDirectories . Recibo este error:

La clave externa ''UserID'' hace referencia a la columna no válida ''UserID'' en la tabla de referencia ''Empleados''.


El error indica que no hay una columna UserID en su tabla de Empleados. Intente agregar la columna primero y luego vuelva a ejecutar la declaración.

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


En el futuro.

ALTER TABLE Employees ADD UserID int; ALTER TABLE Employees ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID) REFERENCES ActiveDirectories(id);


MySQL / SQL Server / Oracle / MS Access:

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

Para permitir el nombre de una restricción FOREIGN KEY y para definir una restricción FOREIGN KEY en varias columnas, use la siguiente sintaxis SQL:

MySQL / SQL Server / Oracle / MS Access:

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


forma de creación de clave externa correcta para ActiveDirectories (id), creo que el error principal es que no mencionó la clave principal para la identificación en la tabla ActiveDirectories


ALTER TABLE Faculty WITH CHECK ADD CONSTRAINT FKFacultyBook FOREIGN KEY FacId REFERENCES Book Book_Id ALTER TABLE Faculty WITH CHECK ADD CONSTRAINT FKFacultyStudent FOREIGN KEY FacId REFERENCES Student StuId