我试图将字段的默认值设置为SQL Server表。 这个字段是int,当我进入GUI并且我将Associated Default Value设置为0并且我保存表时,默认值将是((0))(当我插入记录时它获得NULL值)
为什么呢?我该如何解决?
答案 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
有几种情况。尝试发布您的查询,以便我们进行分析