2014-07-01 4 views
0

Comment ajouter des valeurs de la colonne de clé primaire dans la colonne clé étrangère d'une autre table: J'utilise SQL Server 2012Comment ajouter des valeurs de la colonne de clé primaire dans la colonne clé étrangère d'une autre table

CREATE TABLE CUSTOMERS(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, 
ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID)); 

CREATE TABLE ORDERS (ID INT NOT NULL, DATE DATETIME, CUSTOMER_ID INT references 
CUSTOMERS(ID), AMOUNT VARCHAR (255), PRIMARY KEY (ID)); 

Ici i besoin de prendre toutes les valeurs de « clients » table de clé primaire de la colonne « ID » aux commandes de table de clé étrangère à la colonne « ID »

DECLARE @A INT, @DATE DATETIME, @C_ID INT, @AMOUNTS INT; 

SET @A =1; 
SET @DATE ='2009-10-08 00:00:00'; 
SET @C_ID = 100 
SET @AMOUNTS=1000; 

WHILE @A <= 7 

BEGIN 
SET @DATE = DATEADD(DAY,1,@DATE); 
SET @C_ID = @C_ID + 1 
SET @AMOUNTS = @AMOUNTS+100; 

INSERT INTO ORDERS(ID, DATE, CUSTOMER_ID,AMOUNT) 
    SELECT ID, @DATE, @C_ID, @AMOUNTS FROM CUSTOMERS WHERE AGE like'%'; 

SET @A = @A+1; 
END 
+0

Et si le client n'a jamais passé une commande? – gvee

Répondre

1

Vous avez défini votre table commandes avec une clé étrangère sur Customer_ID que références clients (ID). Vous pouvez donc uniquement ajouter des lignes aux commandes si l'ID existe dans Customers. En ce moment, vous essayez d'insérer 101-107 dans cette colonne à chaque fois, donc vérifiez si ces ID existent dans les clients.

Il me semble que vous DEVRIEZ insérer la colonne Customers.ID dans Orders.Customer_ID, plutôt que Orders.ID. C'est ce que vous vouliez dire?

+0

Oui, c'est exactement ce que je veux, vous voulez insérer la colonne Customers.ID dans Orders.Customer_ID. Utilisation de la requête d'insertion – Spidy

Questions connexes