如果未输入任何条目,则表中不显示默认值?

时间:2014-08-01 19:37:32

标签: sql-server

我想创建一个自动递增主键的表,如果没有输入任何列,则将所有值设置为默认值。当我没有自动增量但它现在无法工作时,它工作。我需要做些什么来改变“空”字。出现在单元格中。

代码在这里:

create table Persons
 (
 P_Id int IDENTITY(1,1) primary key,
 LastName  varchar(55) default 'Empty',
 FirstName varchar(55) default 'Empty',
 Address   varchar(55) default 'Empty',
 City      varchar(55) default 'Empty'
 )

表:

1   l   f   a   c
2   k       l   l
NULL    j   k   NULL    NULL
NULL    NULL    NULL    NULL    NULL

不使用自动增量工作:

5   Empty   Empty   Empty   Empty
NULL    NULL    NULL    NULL    NULL

这样就可以了:

CREATE TABLE [dbo].[AAA](
    [P_Id] [int] NOT NULL primary key,
    [LastName]  [varchar](55) default 'E',
    [FirstName] [varchar](55) default 'E',
    [Address]   [varchar](55) default 'E',
    [City]      [varchar](55) default 'E'
)

工作代码:

CREATE TABLE Pers
 (
 P_Id int primary key NOT NULL,
 LastName  varchar(55) DEFAULT 'A',
 FirstName varchar(55) DEFAULT 'B',
 Address1  varchar(55) DEFAULT 'C',
 City      varchar(55) DEFAULT 'D' <-- This Will Work (actual all of them do)
 )

如果设置了身份(1,1),为什么它们不起作用?我需要一个主键,然后我想将字段设置为E为空或任意值。

1 个答案:

答案 0 :(得分:0)

尝试此代码不允许 null

    SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Persons](
    [P_Id] [int] IDENTITY(1,1) NOT NULL,
    [LastName] [varchar](55) NOT NULL,
    [FirstName] [varchar](55) NOT NULL,
    [Address] [varchar](55) NOT NULL,
    [City] [varchar](55) NOT NULL,
 CONSTRAINT [PK__Persons__A3420A572F10007B] PRIMARY KEY CLUSTERED 
(
    [P_Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[Persons] ADD  CONSTRAINT [DF__Persons__LastNam__30F848ED]  DEFAULT ('Empty') FOR [LastName]
GO

ALTER TABLE [dbo].[Persons] ADD  CONSTRAINT [DF__Persons__FirstNa__31EC6D26]  DEFAULT ('Empty') FOR [FirstName]
GO

ALTER TABLE [dbo].[Persons] ADD  CONSTRAINT [DF__Persons__Address__32E0915F]  DEFAULT ('Empty') FOR [Address]
GO

ALTER TABLE [dbo].[Persons] ADD  CONSTRAINT [DF__Persons__City__33D4B598]  DEFAULT ('Empty') FOR [City]
GO