2012-01-31 52 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

有几种方案。请尝试发布您的问题查询,让我们可以对此进行分析

相关问题