Есть ли способ вставить одни и те же данные в несколько столбцов SQL?

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

Имена столбцов для этого примера:

Monday, Tuesday, Wednesday, Thursday, Friday 

INSERT INTO sample 
VALUES ('long string')

Это пример того, что я имею в виду, поэтому одно и то же значение в каждом столбце

Monday      |  Tuesday    | Wednesday   | Thursday    | Friday 
long string | long string | long string | long string | long string

Я хочу эту длинную строку во всех столбцах, есть ли способ сделать это без использования нескольких операторов вставки? ИЛИ есть ли способ создать CTE, который может автоматизировать это, чтобы упростить его?

3 ответа

Вы должны перечислить все значения:

insert into sample (Monday, Tuesday, Wednesday, Thursday, Friday)
    values ('long string', 'long string', 'long string', 'long string', 'long string');

Вы не указываете базу данных, но вы можете использовать подзапрос, чтобы уменьшить размер запроса:

insert into sample (Monday, Tuesday, Wednesday, Thursday, Friday)
    select val, val, val, val, val
    from (select 'long string' as val) x;

Вы можете расширить пример Гордона следующим образом:

DECLARE @valuesToInsert TABLE (val NVARCHAR(MAX))
INSERT INTO @valuesToInsert
VALUES 
('This is a long sentence'), 
('This is another long sentence'), 
('This is yet another long sentence')

INSERT INTO sample (Monday, Tuesday, Wednesday, Thursday, Friday)
SELECT  val, val, val, val, val
FROM    @valuesToInsert

@valuesToInsert ваш источник данных, который вы хотите использовать (я создал переменную таблицы только для отображения нескольких строк данных

Пытаться

вставьте в выборку (понедельник, вторник, среда, четверг, пятница) значения выберите "длинная строка"

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