以前は完全に動作していたトリガがあります。しかし後に、必要に応じて、私はそれは完全にeexcutedが、テーブルにデータを挿入しながら、私はデータ型varchar型に変換Inデータ型varcharを数値に変換中にエラーが発生しました。
エラーとしてエラーを得た
を下回っているものの中にいくつかのより多くの行を追加しました数値declare @imkey numeric(10,0);declare @xmkey numeric(10,0); declare @xsrno numeric(10,0) select @xmkey=max([Mkey])+1, @xsrno=max([Entry_Sr_No])+1 from erp190516.[dbo].[Inward_Doc_Tracking_Trl] where [email protected]; select @imkey=i.Inward_ref_key from inserted i insert into erp190516.[dbo].[Inward_Doc_Tracking_Trl] SELECT @xmkey,@xsrno,[N_UserMkey],'1' [N_Department], 'F' [CStatus_Flag] ,'Requester' [Remarks],'1' [CUser_ID],getdate() [U_Datetime], ,'N' [NStatus_Flag], 'N' [Delete_Flag] ,'1'[CDept_Id],[Ref_Mkey],[No_Of_Days],[Approved_Amount],[Chq_No],[Chq_dated] ,[Chq_Bank],[Chq_Amount],[Vendor_MKey],[Vendor_Comp_Mkey] ,[Project_Mkey],[Program_mkey],[Payment_MKey],[Due_Date],[Updated_Remarks] ,[Updated_Bill_no],[Updated_Bill_Date],[Updated_Bill_Amt] ,[Party_Name],[Acc_mkey],[TotalDeductions],[Broker_Mkey],[Customer_Mkey] ,[Payable_Amt],[Balance_Amt],[Receipt_No],[Po_No],[Bill_No] ,[Disp_through],[Disp_Through_Name],[Site_Id] FROM erp190516.[dbo].[Inward_Doc_Tracking_Trl] where [email protected]
テーブル定義に
CREATE TABLE [dbo].[Inward_Doc_Tracking_Trl](
[Mkey] [numeric](18, 0) NOT NULL,
[Entry_Sr_No] [numeric](4, 0) NOT NULL,
[N_UserMkey] [numeric](10, 0) NULL,
[N_Department] [numeric](10, 0) NULL,
[CStatus_Flag] [numeric](8, 0) NOT NULL,
[Remarks] [varchar](500) NULL,
[CUser_ID] [numeric](10, 0) NOT NULL,
[U_Datetime] [datetime] NOT NULL,
[NStatus_Flag] [numeric](10, 0) NOT NULL,
[Delete_Flag] [char](1) NULL,
[CDept_Id] [numeric](10, 0) NOT NULL,
[Ref_Mkey] [numeric](18, 0) NULL,
[No_Of_Days] [int] NULL,
[Approved_Amount] [float] NULL,
[Chq_No] [varchar](50) NULL,
[Chq_dated] [datetime] NULL,
[Chq_Bank] [varchar](40) NULL,
[Chq_Amount] [float] NULL,
[Vendor_MKey] [int] NULL,
[Vendor_Comp_Mkey] [int] NULL,
[Project_Mkey] [numeric](10, 0) NULL,
[Program_mkey] [numeric](10, 0) NULL,
[Payment_MKey] [int] NULL,
[Due_Date] [datetime] NULL,
[Updated_Remarks] [varchar](500) NULL,
[Updated_Bill_no] [varchar](27) NULL,
[Updated_Bill_Date] [datetime] NULL,
[Updated_Bill_Amt] [float] NULL,
[Party_Name] [varchar](80) NULL,
[Acc_mkey] [numeric](10, 0) NULL,
[TotalDeductions] [float] NULL,
[Broker_Mkey] [numeric](10, 0) NULL,
[Customer_Mkey] [numeric](10, 0) NULL,
[Payable_Amt] [float] NULL,
[Balance_Amt] [float] NULL,
[Receipt_No] [varchar](50) NULL,
[Po_No] [varchar](50) NULL,
[Bill_No] [varchar](50) NULL,
[Oracle_doc_no] [varchar](100) NULL,
CONSTRAINT [PK_Inward_Doc_Tracking_Trl_1] PRIMARY KEY CLUSTERED
(
[Mkey] ASC,
[Entry_Sr_No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Inward_Doc_Tracking_Trl] ADD CONSTRAINT [DF_Inward_Doc_Tracking_Trl_U_Datetime] DEFAULT (getdate()) FOR [U_Datetime]
GO
ALTER TABLE [dbo].[Inward_Doc_Tracking_Trl] ADD CONSTRAINT [DF__Inward_Do__Delet__47FED732] DEFAULT ('N') FOR [Delete_Flag]
GO
[U_Datetime]の後に2つのカンマがあります – NEER
テーブルの定義を共有できますか? – Mureinik
あなたの現在の問題(単純なデータ型の不一致のように見えますが、あなたのテーブル定義を知らなくても* us *を解決できないと思われますが)には2つのエラーがあるようです。第2の選択は、 'inserted'が正確に* 1行を含んでいることを前提としています。それは安全な前提ではありません**。トリガは、0、1、または複数の*行を含むことができる 'inserted'テーブルに対して動作するように記述する必要があります。 –