我有2代表我的工作:SQL服務器觸發插入
- WPCMA69_Connector
- WPCMA70_ConnectorPocket
由於關係屬性有一個 「更新」 和 「刪除」 級聯,我正在開發一個處理插入的觸發器。 ConnectorName是我希望在PCMA69上的插入命令後自動從PCMA69表插入到PCMA70表中的字段。
PCMA69_ConnectorName_N
- (PK,爲nvarchar(50,不爲空)
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.
您的錯誤是因爲您沒有爲插入指定列。然而你的觸發器有一個主要的缺陷。您正在使用標量變量,這表明它無法處理多行操作。您需要在觸發器中創建基於集合的查詢。 – 2015-03-31 14:01:51
[錯誤:提供的值的列名或數量與表定義不匹配]可能的重複(http://stackoverflow.com/questions/14408922/error-column-name-or-number-of-supplied-values-does -not-match-table-definition) – 2015-03-31 14:16:40