在插入SQL上使用特定行ID作为变量

时间:2014-01-07 18:36:30

标签: insert sql-server-2012

好的我有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

1 个答案:

答案 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()