我試圖設置字段的默認值到SQL Server表中。 這個字段是int,當我去GUI和我設置Associated默認值爲0,我保存該表,比默認值將((0))(並且當我插入一條記錄時,它獲得NULL值)。如何在SQL Server中設置自定義默認值?
爲什麼?我該如何解決它?
我試圖設置字段的默認值到SQL Server表中。 這個字段是int,當我去GUI和我設置Associated默認值爲0,我保存該表,比默認值將((0))(並且當我插入一條記錄時,它獲得NULL值)。如何在SQL Server中設置自定義默認值?
爲什麼?我該如何解決它?
您正在發送NULL。
如果你想使用的默認值,然後不指定或使用關鍵字DEFAULT
INSERT (col1, col3) -- col2 is skipped, gets zero default
VALUE (foo, bar)
INSERT (col1, col2, col3)
VALUE (foo, DEFAULT, bar)
INSERT -- not best practice
VALUE (foo, DEFAULT, bar)
不,我沒有發送NULL,我只是不發送任何東西!也試着用DEFAULT,但它不起作用(它總是得到NULL):0 – markzzz 2012-01-31 10:42:38
@markzzz:然後,你**不**有一個默認值。 *請在您反駁我之前檢查* – gbn 2012-01-31 10:44:15
@markzzz爲了讓每個人都清楚,請發佈您創建的表格代碼和您的插入代碼。 – DavidGouge 2012-01-31 10:50:39
我剛剛創建了一個如下所示的表,testid2上的默認值按預期工作。
USE [db]
GO
/****** Object: Table [dbo].[Table_1] Script Date: 01/31/2012 10:27:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
[testid] [int] NULL,
[testid2] [int] NOT NULL CONSTRAINT [DF_Table_1_testid2] DEFAULT ((0))
) ON [PRIMARY]
如果你右鍵點擊你的表,腳本表爲...,創建,然後檢查你的結果對我的。
如果插入NULL是因爲你可能在指定查詢中的列名。
如果你這樣做:
插入到表(defaultColumn)值(NULL)
它會忽略默認約束和插入NULL
有幾種方案。請嘗試發佈您的問題查詢,讓我們可以對此進行分析
可以顯示您正在使用的* exact * insert語句嗎? – MonkeyCoder 2012-01-31 10:28:34