2016-03-05 71 views
0

我使用下面的代碼:如何複製列數據的一個表的另一

Insert into JV(PurchaseID) 
    select PurchaseID from PurchaseReturnDetail 

但是,當我執行查詢它給出了一個錯誤:

Cannot insert the value NULL into column 'column1', table 'database.table1'; column does not allow nulls.

然後我INSERT失敗。可能是什麼問題?

+0

錯誤很明顯。 。 。表中的其他列不能爲NULL。請編輯您的問題並提供樣本數據和期望的結果。 –

+1

你能JV'表中的'與約束表結構 –

+0

CREATE TABLE [DBO]。[JV]( \t [JVID] [數字](18,0)NOT NULL, \t [JVInvoiceNo] [nvarchar的](50 )NULL, \t [JVDate] [日期時間] NULL, \t [STOREID] [數字](18,0)NULL, \t [BusinessID] [數字](18,0)NULL, \t [用戶名] [數字](18,0)NULL, \t [貨幣] [nvarchar的](50)NULL, \t [速率] [十進制](18,10)NULL, \t [DUEDATE] [日期時間] NULL, \t [參考文獻] [nvarchar的](50)NULL, \t [REFID] [數字](18,0)NULL, \t [敘事] [nvarchar的](最大)NULL, \t [InvoiceRef] [nvarchar的](50 )NULL, \t [狀態] [nvarchar的](50)NULL, \t [類型] [nvarchar的](50)NULL, \t [PurchaseID] [數字](18,0)NULL, 約束[PK_JV] PRIMARY KEY LINQUSTED – Khans178

回答

0

該錯誤表示該表對該列具有非空約束。要更改列允許空值,運行此查詢(用於Oracle DB):

alter table TABLE_NAME modify (COLUMN_NAME null); 
0

如果第一列是標識列,確保自動增量該列啓用。

SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

CREATE TABLE [dbo].[JV](
    [JVID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, 
    [JVInvoiceNo] [nvarchar](50) NULL, 
    [JVDate] [datetime] NULL, 
    [StoreID] [numeric](18, 0) NULL, 
    [BusinessID] [numeric](18, 0) NULL, 
    [UserID] [numeric](18, 0) NULL, 
    [Currency] [nvarchar](50) NULL, 
    [Rate] [decimal](18, 10) NULL, 
    [DueDate] [datetime] NULL, 
    [Reference] [nvarchar](50) NULL, 
    [RefID] [numeric](18, 0) NULL, 
    [Narration] [nvarchar](max) NULL, 
    [InvoiceRef] [nvarchar](50) NULL, 
    [Status] [nvarchar](50) NULL, 
    [Type] [nvarchar](50) NULL, 
    [PurchaseID] [numeric](18, 0) NULL, 
CONSTRAINT [PK_JV] PRIMARY KEY CLUSTERED 
(
    [JVID] 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 
相關問題