Vraag : Tussenvoegsel die binnen een trekker werken niet: Fout die varchar gegevenstype omzetten tot numeriek

Hello,

I am probleem hebben die in een lijst opnemen die een trekker gebruiken.  Het bizarre ding is dat het eind vorige week werkte.  Het enige ding dat ik was een index aan de lijst aangaande InvoiceNumber heb toegevoegd en LineItemNo_Int.

If ik onbruikbaar maak de trekker, het gegeven opgenomen=wordt=.  Wanneer ik de trekker toelaat, krijg ik een fout:

Msg 8114, Niveau 16, Staat 5, Procedure trig_InvoiceLinesInsertCheck, Lijn 27
Error gegevens omzetten typt varchar aan numeric.

Table Def:
CREATE- LIJST [dbo]. [InvoiceLines] (/> [InvoiceLinesID] [int.] 1.1) NIET ONGELDIGE IDENTITEIT
[[varchar] InvoiceNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] CustomerNo] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] LineItemNo] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS, ONGELDIGE
[LineItemNo_Int] [int.],
[[varchar] PartNo] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] CustomerPartNo] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] Hoeveelheid] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] UnitOfMeasure] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] UnitPrice] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] Korting] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] VAT_Tax] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] PONumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] PODate] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] OrderNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[Varchar] PackingSlip] (100) BRENG ONGELDIGE SQL_Latin1_General_CP1_CI_AS,
[bij elkaar [varchar] PlantNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] DepartmentNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] AccountNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] CompanyWarehouse] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] SalesOrderCarrier] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] LineItemPONumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] LineItemReleaseNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] MKPositionNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] TrackingNumber] (100) BRENG ONGELDIGE bij elkaar SQL_Latin1_General_CP1_CI_AS,
[[varchar] InvoiceFormat] (100) BRENG SQL_Latin1_General_CP1_CI_AS NULL
) OP [PRIMAIRE]


Trigger Def bij elkaar: TREKKER

alter [dbo]. [trig_InvoiceLinesInsertCheck] [dbo]. [InvoiceLines]
IN PLAATS VAN TUSSENVOEGSEL
AS
BEGIN
geplaatste nocount on
VERKLAART @InvoiceNumber varchar (100)
verklaart @OrderNumber varchar (100)
verklaart @PositionNumber varchar (100)
@InvoiceFormat varchar (100)
@InvoiceFormat = (Uitgezochte InvoiceFormat van OPGENOMEN)
geplaatst VERKLAART als @InvoiceFormat = 'Nieuwe Format'
BEGIN
@InvoiceNumber = (uitgezochte InvoiceNumber van OPGENOMEN) geplaatste
@OrderNumber = (uitgezochte OrderNumber van OPGENOMEN) geplaatste
@PositionNumber = (uitgezochte LineItemNo van OPGENOMEN)

PLAATSTE ALS BESTAAT (selecteer * uit InvoiceLines waar InvoiceNumber = @InvoiceNumber en OrderNumber = @OrderNumber en LineItemNo = @PositionNumber)
BEGIN
schrapt van InvoiceLines waar InvoiceNumber = @InvoiceNumber en OrderNumber = @OrderNumber en LineItemNo = @PositionNumber
het tussenvoegsel van END
END
in InvoiceLines
(InvoiceNumber, CustomerNo, LineItemNo, LineItemNo_Int, PartNo, CustomerPartNo, Quantity, UnitOfMeasure, UnitPrice, Korting, VAT_Tax, PONumber, PODate, OrderNumber, PackingSlip, PlantNumber, DepartmentNumber, AccountNumber, CompanyWarehouse, SalesOrderCarrier, LineItemPONumber, LineItemReleaseNumber, MKPositionNumber, TrackingNumber, InvoiceFormat)
uitgezochte
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
van OPGENOMEN Vraag
END


Insert:

insert in InvoiceLines
(/> Hoeveelheid
InvoiceNumber,
CustomerNo,
LineItemNo,
LineItemNo_Int,
PartNo,
CustomerPartNo, UnitOfMeasure,
UnitPrice,
Korting,
VAT_Tax,
PONumber,
PODate,
OrderNumber,
PackingSlip,
PlantNumber,
DepartmentNumber,
AccountNumber,
CompanyWarehouse,
SalesOrderCarrier,
LineItemPONumber,
LineItemReleaseNumber,
MKPositionNumber,
TrackingNumber,
InvoiceFormat
)
values
(
„31775ABC“,
            „013608“,
„20“,
20,
„TESTPART“,
„TESTPART2“,
„2“,
'',
„26.70“,
'',
'',
„166TEST“,
'',
„31TEST“,
'',
'',
'',
'',
'',
„UPAC“,
'',
'',
'' br/>)
, van
„/> 'Nieuwe Format'< TESTTRACKINGNUM“,

Antwoord : Tussenvoegsel die binnen een trekker werken niet: Fout die varchar gegevenstype omzetten tot numeriek

>dgmg: De toepassing die de tussenvoegselverklaring roept heeft controles die slechts één enkele rij om tegelijkertijd zullen toelaten worden opgenomen.

Nog gevaarlijk, wegens de globale aard van een trekker.  U zou niet moeten veronderstellen ALLE updates ALTIJD zullen voortkomen uit die toepassing.  Vooral, wanneer zijn de juiste technieken van de trekkercodage goedkope verzekering. : >)




>Een andere ideeën?
Verminder het tussenvoegsel tot de eerste slechts kolom.  Hopelijk werkt het. Voeg opeenvolgend een paar kolommen in een tijd tot vondst toe de beledigende kolom/de gegevens.
Andere oplossingen  
 
programming4us programming4us