2010-02-11 6 views
1

Могу ли я сделать это в SQL 2005?INSERT для таблицы с дополнительным запросом

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

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

ответ

5

как этот

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 

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

+0

Спасибо !!! О чем я только думал? – user269186

0

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

3

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

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

Будет, спасибо за подсказку. – user269186

Смежные вопросы