Szenario:
Sie haben bereits zwei Tabellen dbo.Customer und dbo.Orders erstellt. Der Primärschlüssel wird in der CustomerId-Spalte in der dbo.Customer-Tabelle erstellt.USE YourDatabaseNameGOCREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) )
CREATE TABLE dbo.Orders ( OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT )
Sie müssen die Tabelle dbo.Orders ändern und die Fremdschlüsseleinschränkung für CustomerId von dbo.Customer.
hinzufügen
Lösung:
Da die Tabellen bereits vorhanden sind, kann das folgende Skript verwendet werden, um die Tabelle dbo.Orders zu ändern und eine Fremdschlüsselbeschränkung hinzuzufügen.Wenn die Spalte bereits in der zweiten Tabelle existiert, für die Sie eine Fremdschlüsselbeschränkung erstellen möchten, sind Sie es gut, das folgende Skript auszuführen. Da wir die Spalte in der Tabelle nicht haben, werden wir zuerst die CustomerId-Spalte in der dbo.Orders-Tabelle hinzufügen. Der Spaltenname muss in unserem Fall nicht mit der ersten Tabellenspalte übereinstimmen. -Fremdschlüssel-Einschränkung für vorhandene Tabelle hinzufügen Tabelle ändern dbo.Orders Einschränkung hinzufügen Fk_CustomerId Fremdschlüssel(CustomerId) Referenzen dbo.Customer(CustomerId)
Fremdschlüssel-Einschränkung für zusammengesetzte Spalten erstellen Das folgende Skript kann verwendet werden, um eine Fremdschlüsseleinschränkung für zusammengesetzte Spalten zu erstellen.
USE YourDatabaseNameGOCREATE TABLE dbo.Customer ( Customerid INT Identity(1,1) ,FName VARCHAR(100) Not Null ,LName VARCHAR(100 ) ,SSN VARCHAR(10) Nicht Null, Einschränkung Pk_FName_SSN Primärschlüssel (FName,SSN) ) CREATE TABLE dbo.Orders (OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT ,FirstName VARCHAR(100), SSN VARCHAR(10) Nicht Null )In beiden Tabellen sind bereits Spalten vorhanden, sodass wir der zweiten Tabelle keine Spalten hinzufügen müssen. Wir müssen nur Foreign Key Constrain erstellen. Das folgende Skript kann verwendet werden, um eine Fremdschlüsseleinschränkung für zusammengesetzte Spalten zu erstellen.
Tabelle ändern dbo.Orders Einschränkung hinzufügen Fk_Order_Customer_FName_SSN FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
Sie schreiben Ihre Syntax für Ihre Tabelle.
Ändern Sie die Tabelle Demo:So fügen Sie einer vorhandenen Tabelle in SQL Server eine Fremdschlüsselbeschränkung hinzu