Как вставить одну строку из одной таблицы в другую (в которой меньше столбцов)? - PullRequest
1 голос
/ 01 июня 2010

Редактировать

Хорошо, я решил все свои проблемы, кроме одной. Возможно ли иметь жестко закодированную вставку значений? Как я уже говорил, я пытаюсь вставить одну строку (некоторые из ее столбцов) в другую таблицу, в которой примерно 80% таких же столбцов, но остальные - жесткие ненулевые столбцы, и для них необходимо вставить какое-то значение.

Мне интересно, могу ли я отправить жестко закодированное значение или просто сделать их обнуляемыми?

Привет

Я пытаюсь найти строки, которых нет в одной таблице, и вставить их в другую. Таблица, в которую я пытаюсь вставить, содержит меньше столбцов, чем другая.

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

Но у меня так много проблем, когда я просто пытаюсь вставить его.

У меня есть что-то вроде этого

SELECT p.ProductId, p.ProductName
INTO SomeTable
FROM Product as p
WHERE p.ProductName != 'iPad'

Я получу такую ​​ошибку, хотя

Сообщение 4104, уровень 16, состояние 1, строка 1 Многоэлементный идентификатор «p.ProductId» не может быть связан.

Я не уверен, что я делаю неправильно. Я скопировал и вставил имена, поэтому я не думаю, что это орфографическая ошибка.

Я использую MS SQL 2005 Express.

Редактировать

Я забыл обновить предложение where с псевдонимом, почему я получаю эту ошибку. Теперь я получаю новую ошибку

Уже есть объект с именем SomeTable в базе данных.

Мой пункт "где".

SELECT p.ProductId, p.ProductName
INTO SomeTable
FROM Product as p
WHERE NOT EXISTS (SELECT * FROM SomeTable WHERE p.ProductId = SomeTable.ProductId)

1 Ответ

5 голосов
/ 01 июня 2010

Синтаксис должен быть примерно таким:

INSERT INTO table (f1, f2)
SELECT a, b
FROM table2
WHERE somefield = 'some_value'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...