如何在SQL Server中设置自定义默认值?

时间:2012-01-31 10:22:55

标签: sql-server default-value

我试图将字段的默认值设置为SQL Server表。 这个字段是int,当我进入GUI并且我将Associated Default Value设置为0并且我保存表时,默认值将是((0))(当我插入记录时它获得NULL值)

为什么呢?我该如何解决?

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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]

如果你右键点击你的桌子,脚本表格为...,创建至,然后检查你的结果。

答案 2 :(得分:0)

如果插入NULL,则可能是因为您可能在查询中指定了列名。

如果你这样做:

插入表(defaultColumn)值(NULL)

它将忽略默认约束并插入NULL

有几种情况。尝试发布您的查询,以便我们进行分析

相关问题