我试图设置字段的默认值到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