的foreach行插入到另一个表和更新列
问题描述:
情况:Table1
与CONSTRAINT FOREIGN KEY
到Table2
命名为Table2Id
的foreach行插入到另一个表和更新列
如何Table1
与新插入的行从Table2
(每个Table1
行更新Table2Id
列的每一行都会有自己Table2
记录)?
答
我已经使用类似下面的代码在MS SQL-Server上执行此操作。我没有这个代码,但是在MySQL中实现了类似的触发器。
ALTER TRIGGER [dbo].[Addresses_afterInsert]
ON [dbo].[Addresses]
AFTER INSERT
AS
BEGIN
INSERT INTO [MultiKey] ([keyEntity], [nameEntity], [typeEntity])
SELECT [keyAddress], [fullAddress], 'Address' AS [typeEntity]
FROM [Addresses]
WHERE ([keyMulti] IS NULL);
UPDATE [Addresses]
SET [keyMulti] = [MultiKey].[keyMulti]
FROM [Addresses]
INNER JOIN [MultiKey]
ON (
([MultiKey].[keyEntity] = [Addresses].[keyAddress])
AND ([MultiKey].[typeEntity] = 'Address')
);
END
只要rowid存在于Table2中,简单的更新语句应该适用于Table1。在从Table2获取新插入的rowID时遇到问题吗? – SoulTrain 2015-02-11 16:47:18
它应该为'Table1'中的每行插入数据到'Table2',并且同时将'INSERTED.Id'分配给'Table1'中的相应列 – eCorke 2015-02-11 16:55:43