2010-12-05 18 views
1

Je quelques problèmes avec mon TRIGGER:INSERT TRIGGER Problèmes: "Les informations de la colonne de clé sont insuffisantes ou incorrectes." Trop de lignes ont été affectées par la mise à jour. "

CREATE TRIGGER "tblSettingTable_INSERT" 
ON dbo.tblSettingTable 
FOR INSERT 
    AS 

INSERT INTO dbo.tblSettingReportParameter (tableName, columnName, columnCaption) 
SELECT tableName = CAST(OBJECT_NAME(c.object_id) AS varchar(100)), 
      columnName = CAST(c.name AS varchar(100)), 
      columnCaption = CAST(ex.value AS varchar(100)) 
FROM  sys.columns c 
LEFT OUTER JOIN sys.extended_properties ex 
      ON ex.major_id = c.object_id 
      AND ex.minor_id = c.column_id 
      AND ex.name = 'MS_Caption' 
INNER JOIN inserted ON OBJECT_NAME(c.object_id) = inserted.tableName 
WHERE  OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0 
     AND OBJECT_NAME(c.object_id) = inserted.tableName 

J'essaie l'obtenir des propriétés de la colonne d'une table et l'insérer dans dbo.tblSettingReportParameter mais je reçois ce jeté mon visage: « informations de colonne clé est insuffisante ou incorrect. Trop de lignes ont été affectées par la mise à jour. "

Qu'est-ce que je fais mal? Utilisation de MS-SQL 2008 RS.

Merci,

Stefan

Répondre

7

devrait être corrigé si vous ajoutez SET NOCOUNT ON à la détente.

Le xx rows returned est l'accès à confusion (que je suppose que les problèmes à l'INSERT SQL Server bien sûr basé sur les balises pour la question)

+0

Merci, il fonctionne très bien maintenant! – unitario