用于级联插入的SQL Server触发器

时间:2015-03-31 13:54:50

标签: sql-server triggers insert

我有2张表,我正在使用:

  • WPCMA69_Connector
  • WPCMA70_ConnectorPocket

由于关系属性具有"更新"和"删除"级联,我正在开发一个触发器来处理插入。 ConnectorName是我想在PCMA69上插入命令后自动从PCMA69表插入PCMA70表的字段。

  • PCMA69_ConnectorName_N

    • (PK,nvarchar(50,not null)
  • PCMA70_ConnectorName_N

    • (FK,nvarchar(50),not null)

这是我尝试过的:

alter trigger trigConnector
ON dbo.WPCMA69_Connector
FOR INSERT 
AS
BEGIN
   SET NOCOUNT ON

   DECLARE @ConnectorName nvarchar(50)

   SELECT @Connectorname = PCMA69_ConnectorName_N 
   FROM inserted

   INSERT INTO WPCMA70_ConnectorPocket 
   VALUES (@ConnectorName)
END 

然而,我收到错误:

  

消息213,级别16,状态1,过程trigConnector,第9行
  列名或提供的值数与表定义不匹配。

2 个答案:

答案 0 :(得分:1)

你需要沿着这些方向做点什么。

insert into WPCMA70_ConnectorPocket (WhateverYourColumnIsHere) 
Select PCMA69_ConnectorName_N from inserted

如果一个操作中有一行以上,那么当你涉及标量变量时,它只会获取其中一行。

答案 1 :(得分:0)

insert into WPCMA70_ConnectorPocket (PCMA70_ConnectorName_N) 
values (@ConnectorName)