Contexte: Gestion SQL Server Management Studio 2008 R2insérer des données SQL dans la table a clé étrangère
DataTable: ProductID(PK, bigint), ProductNameID(FK, int), Price(Decimal)
ProductNameTable: ProductNameID(PK, int), ProductName(varchar)
donc j'ai besoin d'insérer des données comme "123,4, AAA" (Prix, ProductName) en DataTable mais avec ProductNameID est un FK,
Comment puis-je faire ça ???? Bec ProductNameID est auto-incrément
Ceci est le code que j'ai jusqu'à présent:
CREATE PROCEDURE DataInsertSP
@Price DECIMAL(8, 2), @ProductName VARCHAR(20)
AS
BEGIN
DECLARE @NewProductNameID INT
INSERT INTO ProductNameTable(ProductName)
VALUES (@ProductName)
SELECT @NewProductNameID = SCOPE_IDENTITY()
INSERT INTO DataTable(ProductNameID, Price)
VALUES (@NewProductNameID, @Price);
END;
EXECUTE DataInsertSP
@Price = 12.25 , @ProductName = 'Argo'
S'il vous plaît me donner quelques conseils, Merci beaucoup
ce qui ne va pas avec le code existant me semble bien, sauf que vous devez '@ NewProductNameID' être' BIGINT'. –
Quelle erreur obtenez-vous? – briskovich
Vous avez deux tables différentes pour une raison quelconque? Étant donné que le prix et le nom dépendent du productID, vous souhaitez une table unique pour toutes ces données afin d'être en forme normale. –