这似乎是一个非常简单的答案,但出于某种原因,我无法理解如何实现这一目标......
我有两张不同的牌桌:
其中dbo.Campaign
是广告系列的所有详细信息,dbo.Campaign_Customer
基本上是一个包含CampaignID
,CustomerID
,CreationDate
的摘要表,和DeletionDate
(如果有的话)
因此,当我在我的dbo.Campaign
表中插入新记录时,我需要能够使用它生成的CampaignID
来创建我的dbo.Campaign_Customer
表中的记录
我知道这是可能的,但我不知道这样做的正确方法。有什么帮助吗?
答案 0 :(得分:3)
您需要在事务中包含2个单独的插入语句。如果您的广告系列ID是标识列,则可以在首次插入后使用scope_identity函数获取其值
BEGIN TRANSACTION
INSERT INTO dbo.Campain (x, y, z) VALUES (x, y, z)
DECLARE @id int
SELECT @id = scope_identity()
INSERT INTO dbo.Campaign_Customer (CampaignId, x, y) VALUES (@id, x, y)
COMMIT
答案 1 :(得分:1)
你可以创建一个触发器来执行此操作:
CREATE TRIGGER [Campaign_Trigger] on dbo.Campaign
AFTER INSERT AS
INSERT INTO dbo.Campaign_Customer (CampaignId, x, y)
VALUES (t.CampaignID, t.x, t.y)
FROM Inserted t