Добавление полей в таблицу, если их нет, и установка значения по умолчанию - PullRequest
0 голосов
/ 28 февраля 2011

Может кто-нибудь помочь мне создать скрипт sql, который добавит 2 поля даты в таблицу и установит для этих полей значение по умолчанию 10:30

По какой-то причине это не компилируется

    SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER TABLE [dbo].[NickTestTable](
    ADD COLUMN [DTMON_F] [smalldatetime] NULL,
    ADD COLUMN [DTMON_T] [smalldatetime] NULL,
    ADD COLUMN [DTTUES_F] [smalldatetime] NULL,
    ADD COLUMN [DTTUES_T] [smalldatetime] NULL,
    ADD COLUMN [DTWED_F] [smalldatetime] NULL,
    ADD COLUMN [DTWED_T] [smalldatetime] NULL,
    ADD COLUMN [DTTHURS_F] [smalldatetime] NULL,
    ADD COLUMN [DTTHURS_T] [smalldatetime] NULL,
    ADD COLUMN [DTFRI_F] [smalldatetime] NULL,
    ADD COLUMN [DTFRI_T] [smalldatetime] NULL,
    ADD COLUMN [DTSAT_F] [smalldatetime] NULL,
    ADD COLUMN [DTSAT_T] [smalldatetime] NULL,
    ADD COLUMN [DTSUN_F] [smalldatetime] NULL,
    ADD COLUMN [DTSUN_T] [smalldatetime] NULL
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTMON_F]  DEFAULT ('2011-02-28 10:30:00') FOR [DTMON_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTMON_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTMON_T]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTTUES_F]  DEFAULT ('2011-02-28 10:30:00') FOR [DTTUES_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTTUES_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTTUES_T]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTWED_F]  DEFAULT ('2011-02-28 10:30:00') FOR [DTWED_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTWED_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTWED_T]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTTHURS_F] DEFAULT ('2011-02-28 10:30:00') FOR [DTTHURS_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTTHURS_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTTHURS_T]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTFRI_F]  DEFAULT ('2011-02-28 10:30:00') FOR [DTFRI_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTFRI_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTFRI_T]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTSAT_F]  DEFAULT ('2011-02-28 10:30:00') FOR [DTSAT_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTSAT_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTSAT_T]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTSUN_F]  DEFAULT ('2011-02-28 10:30:00') FOR [DTSUN_F]
GO
ALTER TABLE [dbo].[NickTestTable] 
ADD  CONSTRAINT [DF_NickTestTable_DTSUN_T]  DEFAULT ('2011-02-28 22:00:00') FOR [DTSUN_T]
GO

1 Ответ

2 голосов
/ 28 февраля 2011

Я бы посоветовал вам сделать следующее для каждого из ваших столбцов.

ALTER TABLE dbo.[NickTestTable] 
ADD [DTMON_F] smalldatetime
CONSTRAINT DF_NickTestTable_DTMON_F DEFAULT '2011-02-28 10:30:00' NOT NULL

Должен немного привести в порядок код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...