ВСТАВИТЬ в таблицу с подзапросом - PullRequest
1 голос
/ 11 февраля 2010

Могу ли я сделать это в SQL 2005?

SELECT 'C'+inserted.exhid AS ExhId,inserted.exhname AS ExhName,inserted.exhid AS RefID INTO mytable FROM inserted 
    WHERE inserted.altname IS NOT NULL

Это не будет работать, если таблица существует, но создаст таблицу, если она не существует. Как заставить его вставить в существующую таблицу?

Ответы [ 3 ]

5 голосов
/ 11 февраля 2010

как это

INSERT INTO mytable
SELECT 'C'+inserted.exhid AS ExhId,inserted.exhname AS ExhName,
 inserted.exhid AS RefID  FROM inserted 
    WHERE inserted.altname IS NOT NULL

в этом случае вам также не нужны псевдонимы

3 голосов
/ 11 февраля 2010

SQLMenace ответ правильный. Но, чтобы добавить к этому, я хотел бы предложить, что хорошей практикой является явное перечисление ваших столбцов, в которые вы вставляете, в случае, когда структура таблицы / порядок столбцов когда-либо изменится, таким образом ваш процесс будет лучше работать согласованно.

INSERT INTO mytable ( 
ExhId, 
ExhName, 
RefID) 
SELECT 'C'+inserted.exhid,
inserted.exhname, 
inserted.exhid 
FROM inserted 
WHERE inserted.altname IS NOT NULL
0 голосов
/ 11 февраля 2010

Чтобы вставить в существующую таблицу, используйте INSERT INTO вместо `SELECT INTO

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