2012-01-31 87 views
0

我試圖設置字段的默認值到SQL Server表中。 這個字段是int,當我去GUI和我設置Associated默認值爲0,我保存該表,比默認值將((0))(並且當我插入一條記錄時,它獲得NULL值)。如何在SQL Server中設置自定義默認值?

爲什麼?我該如何解決它?

+1

可以顯示您正在使用的* exact * insert語句嗎? – MonkeyCoder 2012-01-31 10:28:34

回答

1

您正在發送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) 
+0

不,我沒有發送NULL,我只是不發送任何東西!也試着用DEFAULT,但它不起作用(它總是得到NULL):0 – markzzz 2012-01-31 10:42:38

+0

@markzzz:然後,你**不**有一個默認值。 *請在您反駁我之前檢查* – gbn 2012-01-31 10:44:15

+1

@markzzz爲了讓每個人都清楚,請發佈您創建的表格代碼和您的插入代碼。 – DavidGouge 2012-01-31 10:50:39

0

我剛剛創建了一個如下所示的表,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] 

如果你右鍵點擊你的表,腳本表爲...,創建,然後檢查你的結果對我的。

0

如果插入NULL是因爲你可能在指定查詢中的列名。

如果你這樣做:

插入到表(defaultColumn)值(NULL)

它會忽略默認約束和插入NULL

有幾種方案。請嘗試發佈您的問題查詢,讓我們可以對此進行分析

相關問題