J'ai 2 tables avec lesquels je travaille:trigger SQL Server pour cascade insérer
- WPCMA69_Connector
- WPCMA70_ConnectorPocket
Les propriétés de la relation a une "mise à jour" et "supprimer" Cascade , Je développe un déclencheur pour gérer l'insertion. ConnectorName est le champ en commun que je veux insérer automatiquement de la table PCMA69 à la table PCMA70 après une commande d'insertion sur PCMA69.
PCMA69_ConnectorName_N
- (PK, nvarchar (50, non null)
PCMA70_ConnectorName_N
- (FK, nvarchar (50), non null)
Voici ce que j'ai essayé:
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
Cependant, je reçois l'erreur:
Msg 213, Level 16, State 1, Procedure trigConnector, Line 9
Column name or number of supplied values does not match table definition.
Votre erreur est que vous n'avez pas spécifié les colonnes pour votre insertion. Votre déclencheur a cependant un défaut majeur. Vous utilisez des variables scalaires qui indiquent qu'il ne peut pas gérer plusieurs opérations de ligne. Vous devez créer des requêtes basées sur des ensembles dans vos déclencheurs. –
duplication possible de [Erreur: le nom de la colonne ou le nombre de valeurs fournies ne correspond pas à la définition de la table] (http://stackoverflow.com/questions/14408922/error-column-name-or-number-of-supplied-values-does -not-match-table-definition) –