Я знаю, как вставлять, выбирая из другой таблицы, но моя проблема немного сложна. У меня есть таблицы, как показано ниже.SQL Server: вставить в таблицу, выбрав из другой таблицы
Таблица 1:
Col1 | Col2 | Col3 | ..... | Col20
Таблица 2:
Col1 | Col2 | Col3 | ..... | Col20
Обе таблицы идентичны. То, что я хочу сделать, это вставить все значения из таблицы 1 в таблицу 2, но оставить один столбец (скажем, Col20). Я хочу вставить этот столбец с моим пользовательским значением. Я могу сделать это, сопоставляя 1 к 1 столбцу, как показано ниже.
Insert into table1(Col1, Col2, ..., Col20)
select Col1, Col2, ..., @customvalue
from table2
Я пошел бы с этим способом, но я должен использовать этот запрос несколько раз внутри хранимых процедур, которые делают, что хранимая процедура длительная. Но я хочу сократить этот запрос. Есть ли другой, лучший способ?
Вы можете инкапсулировать эту инструкцию insert в хранимую процедуру или udf и просто выполнить ее как можно больше, чтобы выполнить основную процедуру. Нет лучшего способа выполнить вставку ... select. –
Я не знаком с термином, заключенным в хранимую процедуру. Можете ли вы предоставить мне любую ссылку, которая может быть полезной для меня? @Zohar – Amir
инкапсулирует в этом случае просто означает создание метода, который будет выполнять вашу вставку (хранимая процедура или udf в этом случае). Затем вы можете выполнить этот метод вместо записи инструкции insert каждый раз. –