Я пытаюсь выбрать некоторые поля из одной таблицы и вставить их в существующую таблицу из хранимой процедуры. Вот что я пытаюсь:
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
Я думаю SELECT ... INTO ...
для временных таблиц, поэтому я получаю ошибку, которая dbo.TableTwo
уже существует.
Как я могу вставить несколько строк из dbo.TableOne
в dbo.TableTwo
?
sql
sql-server
tsql
stored-procedures
Даниил
источник
источник
Ответы:
SELECT ... INTO ...
работает только в том случае, если таблица, указанная в предложении INTO, не существует - в противном случае вы должны использовать:Предполагается, что в dbo.TABLETWO есть только два столбца - в противном случае необходимо указать столбцы:
источник
SELECT... INTO...
оператор не работает, если таблица, указанная вINTO
предложении, еще не существует. Я получаю ошибку "необъявленная переменная". Хотя, возможно, эта проблема только для MySQL. TheCREATE TABLE ... LIKE .. worked
;Существует два разных способа реализации вставки данных из одной таблицы в другую.
Для существующей таблицы - INSERT INTO SELECT
Этот метод используется, когда таблица уже создана в базе данных ранее, и данные должны быть вставлены в эту таблицу из другой таблицы. Если столбцы, перечисленные в предложении вставки и предложении выбора, совпадают, они не обязаны перечислять их. Рекомендуется всегда перечислять их для удобства чтения и масштабирования.
Для несуществующей таблицы - SELECT INTO
Этот метод используется, когда таблица не была создана ранее, и его необходимо создавать, когда данные из одной таблицы необходимо вставить во вновь созданную таблицу из другой таблицы. Новая таблица создается с теми же типами данных, что и выбранные столбцы.
Ссылка 1 2
источник
Это будет работать, как указано ниже:
источник
SELECT *
не сработает. Это лучший способ, спасибо!Если вы уже использовали
select * into tablename from other tablenames
, в следующий раз, чтобы добавить, вы говорите,select * into existing table tablename from other tablenames
источник
Если таблица назначения существует, но вы не хотите указывать имена столбцов:
источник