Question : Insérer le travail dans un déclenchement : Erreur convertissant le type de données varchar en numérique

Bonjour,

I AM ayant l'ennui s'insérer dans une table using un déclenchement.  De chose étrange est qu'elle était travail en retard la semaine dernière.  La seule chose que je me suis ajoutée était un index à la table sur InvoiceNumber et LineItemNo_Int.

If je désactive le déclenchement, les données est inséré.  Quand je permets le déclenchement, j'obtiens une erreur :

Msg 8114, niveau 16, état 5, trig_InvoiceLinesInsertCheck, ligne 27
Error de procédé convertissant le type de données varchar en numeric.

Table Def : TABLE du
CREATE [dbo]. [InvoiceLines] (IDENTITÉ de
[InvoiceLinesID] [international] (1.1) NON NULS,
[InvoiceNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[CustomerNo] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[LineItemNo] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[LineItemNo_Int] [international] la NULLE, le
[PartNo] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[CustomerPartNo] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[quantité] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[UnitOfMeasure] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[UnitPrice] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[escompte] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[VAT_Tax] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[PONumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[PODate] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[OrderNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[PackingSlip] [varchar] (100) ASSEMBLENT LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[PlantNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[DepartmentNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[AccountNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[CompanyWarehouse] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[SalesOrderCarrier] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[LineItemPONumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[LineItemReleaseNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[MKPositionNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[TrackingNumber] [varchar] (100) ASSEMBLER LA NULLE de SQL_Latin1_General_CP1_CI_AS, le
[InvoiceFormat] [varchar] (100) ASSEMBLER SQL_Latin1_General_CP1_CI_AS NULL
) SUR le


Trigger Def : DÉCLENCHEMENT du

alter [dbo]. [trig_InvoiceLinesInsertCheck] DESSUS [dbo]. [Le
d'InvoiceLines] AU LIEU de l'on
de nocount du
AS
BEGIN
d'INSERTION DÉCLARENT
de @InvoiceNumber (les 100) déclarent
de @OrderNumber (les 100) déclarent que
de @PositionNumber (les 100) DÉCLARENT @InvoiceFormat réglés varchar du
de @InvoiceFormat (les 100) = (InvoiceFormat choisi d'INSÉRER) le
si @InvoiceFormat = 'nouveau @InvoiceNumber RÉGLÉ du Br/> BEGIN
de Format'< = (InvoiceNumber choisi d'INSÉRER) @OrderNumber réglé du
= (OrderNumber choisi d'INSÉRER) @PositionNumber réglé du
= (LineItemNo choisi d'INSÉRER) le

SI EXISTE (choisir * à partir d'InvoiceLines où InvoiceNumber = @InvoiceNumber et OrderNumber = @OrderNumber et LineItemNo = suppression du
BEGIN
de @PositionNumber) d'InvoiceLines où InvoiceNumber = @InvoiceNumber et OrderNumber = @OrderNumber et LineItemNo = insertion du @PositionNumber
END
END
dans le
d'InvoiceLines
(InvoiceNumber, CustomerNo, LineItemNo, LineItemNo_Int, PartNo, CustomerPartNo, Quantity, UnitOfMeasure, UnitPrice, escompte, VAT_Tax, PONumber, PODate, OrderNumber, PackingSlip, PlantNumber, DepartmentNumber, AccountNumber, CompanyWarehouse, SalesOrderCarrier, LineItemPONumber, LineItemReleaseNumber, MKPositionNumber, TrackingNumber, InvoiceFormat) choisissent le
InvoiceNumber, CustomerNo, LineItemNo, LineItemNo_Int, PartNo, CustomerPartNo, Quantity, UnitOfMeasure, UnitPrice, Discount, VAT_Tax, PONumber, PODate, OrderNumber, PackingSlip, PlantNumber, DepartmentNumber, AccountNumber, CompanyWarehouse, SalesOrderCarrier, LineItemPONumber, LineItemReleaseNumber, MKPositionNumber, TrackingNumber, InvoiceFormat
de question INSÉRÉE du
END


Insert :

insert dans le
values
(
« 31775ABC » d'InvoiceLines
(quantité de
InvoiceNumber, de
CustomerNo, de
LineItemNo, de
LineItemNo_Int, de
PartNo, de
CustomerPartNo, de
, escompte de
UnitOfMeasure, de
UnitPrice, de
,
VAT_Tax,
PONumber,
PODate,
OrderNumber,
PackingSlip,
PlantNumber,
DepartmentNumber,
AccountNumber,
CompanyWarehouse,
SalesOrderCarrier,
LineItemPONumber,
LineItemReleaseNumber,
MKPositionNumber,
TrackingNumber,
InvoiceFormat
),
            « 013608 »,
« 20 »,
20,
« TESTPART »,
« TESTPART2 »,
« 2 »,
'',
« 26.70 »,
'',
'',
« 166TEST »,
'',
« 31TEST »,
'',
'',
'',
'',
'',
« Br/>)
de Format'< du
de « TESTTRACKINGNUM » d'UPAC », de
'', de
'', de
de
'', nouveau ' class= de

Réponse : Insérer le travail dans un déclenchement : Erreur convertissant le type de données varchar en numérique

>dgmg : L'application qui appelle le rapport d'insertion a les commandes qui permettront seulement à une rangée simple d'être insérée à la fois.

Encore dangereux, en raison de la nature globale d'un déclenchement.  Vous ne devriez pas supposer que TOUTES LES mises à jour proviendront TOUJOURS de cette application.  En particulier, quand les techniques de codage appropriées de déclenchement sont assurance bon marché. : >)




>De autres idées ?
Ramener l'insertion à la première colonne seulement.  Si tout va bien cela fonctionne. Ajouter successivement quelques colonnes à la fois jusqu'à trouvent la colonne/données offensantes.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us