Вставить в утверждение - пропустить один столбец - PullRequest
2 голосов
/ 16 февраля 2010

Я пытаюсь вставить в таблицу все данные, но изменить только столбец даты

Пока у меня есть что-то вроде

INSERT INTO MyTable (SELECT * FROM MyTable...)

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

Кто-нибудь знает простой способ сделать это

Ответы [ 5 ]

4 голосов
/ 16 февраля 2010
INSERT INTO MyTable (col1, col2, col3) (SELECT col1, col2, 'constant' FROM MyTable...)
1 голос
/ 16 февраля 2010

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

INSERT INTO MyTable (Col1, Col2, DateVal, StaticValue) (SELECT Col1, Col2, getdate() As DateVal, 'test' As StaticValue FROM MyTable2)

Это приведет к получению Col1 и Col2 из MyTable2, но с использованием функции getdate (), чтобы получить текущую дату для столбца DateVal, и каждая вставленная строка будет иметь 'test' для столбца StaticValue.

Помогает ли это?

1 голос
/ 16 февраля 2010

Я бы просто сделал ffg

   INSERT INTO MyTable
   Select col1, col2,....., THE_CONSTANT_VALUE, SOME_OTHER_VALUE from MyTable
1 голос
/ 16 февраля 2010

Да, вы можете сделать это так:

INSERT INTO MyTable (SELECT MyTable.Id, MyTable.xxx, CONSTANT_VALUE FROM MyTable ...)
0 голосов
/ 16 февраля 2010

Чтобы обновить все поля даты каждой строки в MyTable до текущей даты, выполните:

UPDATE MyTable SET thedatecolumn = GETDATE()

Если вы хотите вставить из Таблицы1 в Таблицу2, где они имеют одинаковую структуру, выполните:

INSERT INTO Table2 (column1, column2, column3, fixedcolumn) (SELECT column1, column2, 'textvalue' AS staticcolumn, GETDATE() AS functioncolumn FROM Table1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...