Как вставить значения по умолчанию в таблицу SQL?

У меня есть таблица как это:

create table1 (field1 int,
               field2 int default 5557,
               field3 int default 1337, 
               field4 int default 1337)

Я хочу вставить строку, которая имеет значения по умолчанию для field2 и field4.

Я попробовал insert into table1 values (5,null,10,null) но это не работает и ISNULL(field2,default) не работает также.

Как я могу сказать базе данных использовать значение по умолчанию для столбца, когда я вставляю строку?

62
задан 18 September 2014 в 02:41

8 ответов

Просто не включайте столбцы, для которых Вы хотите использовать значение по умолчанию в Вашем операторе вставки. Например:

INSERT INTO table1 (field1, field3) VALUES (5, 10);

... возьмет значения по умолчанию для field2 и field4 и присвоит 5 field1 и 10 к field3.

69
ответ дан 31 October 2019 в 13:06

Лучшая практика это для списка столбцов, таким образом, Вы независимы от изменений таблицы (новый столбец или порядок столбцов и т.д.)

insert into table1 (field1, field3)  values (5,10)

Однако, если Вы не хотите делать это, используйте DEFAULT ключевое слово

insert into table1 values (5, DEFAULT, 10, DEFAULT)
131
ответ дан 31 October 2019 в 13:06

Лучший способ:

insert your_table
default values
26
ответ дан 31 October 2019 в 13:06

Попробуйте его как это

INSERT INTO table1 (field1, field3) VALUES (5,10)

Затем field2, и field4 должен иметь значения по умолчанию.

5
ответ дан 31 October 2019 в 13:06

Если Ваши столбцы не должны содержать NULL значения, необходимо определить столбцы как NOT NULL также, иначе переданный в NULL будет использоваться вместо значения по умолчанию и не произведет ошибку.

, Если Вы не передаете в никакой значение к этим полям (который требует, чтобы Вы указали поля, которые Вы делаете , хотят использовать), значения по умолчанию будут использоваться:

INSERT INTO 
  table1 (field1, field3) 
VALUES   (5,10)
3
ответ дан 31 October 2019 в 13:06

Можно записать таким образом

GO
ALTER TABLE Table_name  ADD
column_name decimal(18, 2) NOT NULL CONSTRAINT Constant_name DEFAULT 0
GO
ALTER TABLE Table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
1
ответ дан 31 October 2019 в 13:06

Для вставки значений по умолчанию, необходимо опустить их что-то вроде этого:

Insert into Table (Field2) values(5)

Все другие поля будут иметь пустой указатель или их значения по умолчанию, если он определил.

0
ответ дан 31 October 2019 в 13:06
CREATE PROC SP_EMPLOYEE                             --By Using TYPE parameter and CASE  in Stored procedure
(@TYPE INT)
AS
BEGIN
IF @TYPE=1
BEGIN
SELECT DESIGID,DESIGNAME FROM GP_DESIGNATION
END
IF @TYPE=2
BEGIN
SELECT ID,NAME,DESIGNAME,
case D.ISACTIVE when 'Y' then 'ISACTIVE' when 'N' then 'INACTIVE' else 'not' end as ACTIVE
 FROM GP_EMPLOYEEDETAILS ED 
  JOIN  GP_DESIGNATION D ON ED.DESIGNATION=D.DESIGID
END
END
-3
ответ дан 31 October 2019 в 13:06

Другие вопросы по тегам:

Похожие вопросы: