好的我有3张桌子
人 项目 购买
Person有2列:PersonId,PersonName 项目有2列:ItemId,ItemName 购买有3列:PurchaseId,ItemId,PersonId
让我说Personname为“Justin”的人的PersonId为2 和ItemName为“Book”的Item具有ItemId为4
我想使用值2和4
插入购买表到目前为止我有什么
Select PersonId AS a FROM tblPerson
Where PersonName = 'Justin'
Select ItemId AS b From tblItem
Where ItemName = 'Book'
INSERT INTO tblPurchase (ItemId,PersonId)
VALUES (b,a);
所以购买中的新条目将是
PurchaseId ItemId PersonId 1 4 2
我如何在sql中执行此操作?我会使用变量吗?
我正在使用SQL Server Management Studio 2012
答案 0 :(得分:1)
DECLARE @PersonId INT
DECLARE @ItemId INT
Select @PersonId = PersonId FROM tblPerson
Where PersonName = 'Justin'
Select @ItemId = ItemId From tblItem
Where ItemName = 'Book'
INSERT INTO tblPurchase (ItemId,PersonId)
VALUES (@ItemId ,@PersonId);
如果您在tblPurchase上使用Identity或自动生成的密钥,则可以在INSERT之后使用以下命令获取该密钥:
DECLARE @NewKey INT
SET @NewKey = SCOPE_IDENTITY()