Hallo,
I morgens Mühe habend, in eine Tabelle using einen Auslöser einzusetzen. Die sonderbare Sache ist, dass es späte letzte Woche funktionierte. Die einzige Sache, die ich addierte, war ein Index zum Tabelle auf InvoiceNumber und LineItemNo_Int.
If ich den Auslöser, die Daten sperre, eingesetzt zt. Wenn ich dem Auslöser ermögliche, erhalte ich eine Störung:
Msg 8114, Niveau 16, Zustand 5, Verfahren trig_InvoiceLinesInsertCheck, Linie 27 Error die Datenart varchar in numeric.
Table Def umwandelnd: CREATE TABELLE [dbo]. [InvoiceLines] ( [InvoiceLinesID] [int] IDENTITÄT (1.1) NICHT UNGÜLTIG, [InvoiceNumber] [varchar] (100) SQL_Latin1_General_CP1_CI_AS NULL, [CustomerNo] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [LineItemNo] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [LineItemNo_Int] [int,] SORTIEREN, NULL, [PartNo] [varchar] (100) SQL_Latin1_General_CP1_CI_AS NULL, [CustomerPartNo] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [die Quantität] [varchar] (100) SORTIEREN SQL_Latin1_General_CP1_CI_AS NULL, [UnitOfMeasure] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [UnitPrice] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [der Diskont] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [VAT_Tax] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [PONumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [PODate] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [OrderNumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, SORTIEREN [PackingSlip] [varchar] (100) SORTIEREN SQL_Latin1_General_CP1_CI_AS NULL, [PlantNumber] [varchar] (100), SQL_Latin1_General_CP1_CI_AS NULL, [DepartmentNumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [AccountNumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [CompanyWarehouse] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [SalesOrderCarrier] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [LineItemPONumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [LineItemReleaseNumber] [varchar] (100) SORTIEREN SQL_Latin1_General_CP1_CI_AS NULL, [MKPositionNumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [TrackingNumber] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL, [InvoiceFormat] [varchar] (100) SORTIEREN, SQL_Latin1_General_CP1_CI_AS NULL SORTIEREN) AUF [PRIMÄR]
Trigger Def:
alter AUSLÖSER [dbo]. [trig_InvoiceLinesInsertCheck] AN [dbo]. [InvoiceLines] ANSTELLE VON EINSATZ AS BEGIN gesetztem nocount on ERKLÄREN, @InvoiceNumber varchar (100) erklären, @OrderNumber varchar (100) erklären, dass @PositionNumber varchar (100) @InvoiceFormat varchar (100) gesetztes @InvoiceFormat = (auserwähltes InvoiceFormat von EINGESETZT) wenn @InvoiceFormat = 'neues Format'< Br/> BEGIN GESETZTES @InvoiceNumber = (auserwähltes InvoiceNumber von EINGESETZT) gesetztes @OrderNumber = (auserwähltes OrderNumber von EINGESETZT) gesetztes @PositionNumber = (auserwähltes LineItemNo von EINGESETZT)
ERKLÄREN, WENN EXISTIERT (* von InvoiceLines vorwählen in dem InvoiceNumber = @InvoiceNumber und OrderNumber = @OrderNumber und LineItemNo = @PositionNumber) BEGIN Löschung von InvoiceLines, in dem InvoiceNumber = @InvoiceNumber und OrderNumber = @OrderNumber und LineItemNo = @PositionNumber END END Einsatz in InvoiceLines (InvoiceNumber, CustomerNo, LineItemNo, LineItemNo_Int, PartNo, CustomerPartNo, Quantity, UnitOfMeasure, UnitPrice, Diskont, VAT_Tax, PONumber, PODate, OrderNumber, PackingSlip, PlantNumber, DepartmentNumber, AccountNumber, CompanyWarehouse, SalesOrderCarrier, LineItemPONumber, LineItemReleaseNumber, MKPositionNumber, TrackingNumber, InvoiceFormat) InvoiceNumber, CustomerNo vorwählen, 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 von EINGESETZTER END
Insert Frage:
insert in InvoiceLines ( InvoiceNumber, CustomerNo, LineItemNo, LineItemNo_Int, PartNo, CustomerPartNo, Quantität, UnitOfMeasure, UnitPrice, Diskont, 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“, '', '', '', „TESTTRACKINGNUM“, 'neues Format'< Br/>)
|