2016-07-12 2 views
1

이전에 완벽하게 작동했던 방아쇠가 있습니다. 필요하지만 나중에, 나는 그것은 완벽하게 eexcuted하지만, 테이블에 데이터를 삽입하는 동안 나는 데이터 유형 VARCHAR로 변환입력 데이터 유형 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 
+0

[U_Datetime] 이후에 쉼표가 2 개 있습니다 – NEER

+0

테이블의 정의를 공유 할 수 있습니까? – Mureinik

+2

현재 문제 (테이블 정의를 알지 않고도 해결할 수없는 간단한 데이터 형식 불일치)와 관련이 없을 수 있지만 트리거에 두 가지 오류가있는 것 같습니다. 두 번째 select는'inserted'가 정확히 * one * 행을 포함한다고 가정합니다. 그것은 ** 안전한 가정이 아닌 **입니다. 트리거는 0, 1 또는 * multiple * 행을 포함 할 수있는'inserted' 테이블에 대해 작동하도록 작성되어야합니다. –

답변

1

[NStatus_Flag] 및 [CStatus_Flag]에 문자 값을 삽입하는 중 테이블에 데이터 유형을 변경하거나 숫자 값이있는 데이터를 삽입하십시오.

1

음, 명백한 오류 중 하나는 [CStatus_Flag] [numeric](8, 0)이지만, 'F' [CStatus_Flag]을 선택한다는 것입니다.

또한 설명의 편의를 위해 1이 전환없이 숫자 필드 선택을 위해 을 쓰면 안됩니다.

+0

'F'에서 '0'으로 변경했습니다. 저장하는 동안 여전히 오류가 발생합니다. – BNN

+0

이와 같은 데이터 유형 불일치가있을 때 더 많은 오류가 발생할 수 있습니다. 선택을 거쳐 삽입해야하는 테이블과 동일한 데이터 유형을 선택해야합니다. 분명히 그렇지 않기 때문입니다. –

+0

변경을해야하는 곳이 2 곳 있었는데, 그 중 하나가 효과가있었습니다. – BNN

관련 문제