SQL 级联插入的服务器触发器
SQL Server trigger for cascade insert
我有 2 个 table 正在使用:
- WPCMA69_Connector
- WPCMA70_ConnectorPocket
由于关系属性有一个 "update" 和 "delete" 级联,我正在开发一个触发器来处理插入。 ConnectorName 是我想在 PCMA69 上执行插入命令后自动从 PCMA69 table 插入到 PCMA70 table 的公共字段。
PCMA69_ConnectorName_N
- (PK,nvarchar(50,not null)
PCMA70_ConnectorName_N
- (FK,nvarchar(50),不为空)
这是我试过的:
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
但是,我收到错误消息:
Msg 213, Level 16, State 1, Procedure trigConnector, Line 9
Column name or number of supplied values does not match table definition.
insert into WPCMA70_ConnectorPocket (PCMA70_ConnectorName_N)
values (@ConnectorName)
你需要按照这些思路做一些事情。
insert into WPCMA70_ConnectorPocket (WhateverYourColumnIsHere)
Select PCMA69_ConnectorName_N from inserted
如果您在一个操作中有多于 1 行,当您涉及标量变量时,它只会选择其中的一行。
我有 2 个 table 正在使用:
- WPCMA69_Connector
- WPCMA70_ConnectorPocket
由于关系属性有一个 "update" 和 "delete" 级联,我正在开发一个触发器来处理插入。 ConnectorName 是我想在 PCMA69 上执行插入命令后自动从 PCMA69 table 插入到 PCMA70 table 的公共字段。
PCMA69_ConnectorName_N
- (PK,nvarchar(50,not null)
PCMA70_ConnectorName_N
- (FK,nvarchar(50),不为空)
这是我试过的:
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
但是,我收到错误消息:
Msg 213, Level 16, State 1, Procedure trigConnector, Line 9
Column name or number of supplied values does not match table definition.
insert into WPCMA70_ConnectorPocket (PCMA70_ConnectorName_N)
values (@ConnectorName)
你需要按照这些思路做一些事情。
insert into WPCMA70_ConnectorPocket (WhateverYourColumnIsHere)
Select PCMA69_ConnectorName_N from inserted
如果您在一个操作中有多于 1 行,当您涉及标量变量时,它只会选择其中的一行。