Ms sql insert into from select: SQL INSERT INTO SELECT Statement
Содержание
INSERT INTO SELECT FROM Инструкция для копирования данных из одной таблицы в другую ~ Asp.Net, C#.Net, VB.Net, MVC, jQuery, JavaScipt, AJAX, WCF, пример сервера Sql
SQL SERVER: оператор INSERT INTO SELECT FROM для копирования данных из одной таблицы в другую
Введение : В этой статье я расскажу, как копировать/выбирать данные
из всех или выбранных столбцов одной таблицы и вставить в другую существующую таблицу
в SQL.
В предыдущих статьях я объяснил, как Вставка нескольких записей в таблицу в одном операторе вставки и Обновление существующих значений столбцов линейными порядковыми номерами без цикла и Получение дня, месяца и года из текущей или любой даты и Подсчет количества вхождений символа или слова в строку в sql и Объявление и использование табличных переменных в sql server
Описание : The
Оператор INSERT INTO SELECT копирует/выбирает данные из одной таблицы (исходной таблицы)
и вставляет его в другую существующую таблицу (таблицу назначения). Существующие данные в
целевая таблица останется неизменной.
Новые строки будут
быть добавлен к последней из существующих записей.
Реализация : Давайте создадим образец таблицы и выполним желаемое
операция.
—Создать таблицу(Источник)
СОЗДАТЬ ТАБЛИЦУ tbBooks
BookId INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
Имя книги VARCHAR(100),
Автор VARCHAR(100),
Издатель VARCHAR(100),
BookPrice DECIMAL(10,2)
—Добавить некоторые фиктивные данные
в таблицу
ВСТАВИТЬ В tbBooks ЗНАЧЕНИЯ
(«Asp.Net», «Аджай», «Рози
Публикация», 1200),
(«C#. Net», «Сахил», «Джай
Публикация’,1000),
(«VB.Net», «Нэнси», «Рози
Публикация»,970),
(«MVC», «Сахил», «Амар
Публикация», 1480),
(«ЯВА», «Суприт», «Сэм
Публикация», 850),
(«PHP», «Парвеш», «Майя
Публикация’,800)
—Проверить вставленные данные
SELECT * FROM tbBooks
Идентификатор книги |
ИмяКниги |
Автор |
Издатель |
Цена книги |
Asp.Net |
Публикация Рози |
1200. |
||
С#.Net |
Джай Публикация |
1000.00 |
||
ВБ.Нет |
Публикация Рози |
970.00 |
||
Публикация Амара |
1480.00 |
|||
Суприт |
Публикация Сэма |
850. |
||
Парвеш |
Публикация Майя |
800.00 |
—Создать другую таблицу (назначение)
СОЗДАТЬ ТАБЛИЦУ tbSelectedBooks
BookId INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
Имя книги VARCHAR(100),
Автор VARCHAR(100),
Издатель VARCHAR(100),
BookPrice DECIMAL(10,2)
— Давайте скопируем данные, кроме
BookId из таблицы tbBooks и вставка в таблицу tbSelectedBooks
Скопировать данные из одной таблицы и вставить в другую:
ВСТАВИТЬ В tbSelectedBooks(BookName, Author, Publisher, BookPrice) SELECT BookName, Author, Publisher, BookPrice
ИЗ
книги;
Примечание : мы можем скопировать данные из всех или любого количества столбцов из одной таблицы и вставить в другую таблицу
—Проверить вставленные данные
SELECT * FROM
tbSelectedBooks
Идентификатор книги |
ИмяКниги |
Автор |
Издатель |
Цена книги |
Asp. |
Публикация Рози |
1200.00 |
||
С#.Net |
Джай Публикация |
1000.00 |
||
ВБ.Нет |
Публикация Рози |
970.00 |
||
Публикация Амара |
1480. |
|||
Суприт |
Публикация Сэма |
850.00 |
||
Парвеш |
Публикация Майя |
800.00 |
Копировать данные при условии:
Предполагать
мы хотим скопировать и вставить только те записи из таблицы tbBooks, где Book
цена больше 1000, тогда запрос будет таким:
—Давайте сначала обрежем
все существующие данные для ясности
TRUNCATE TABLE tbSelectedBooks
ВСТАВИТЬ В tbSelectedBooks(BookName,Author,Publisher,BookPrice) SELECT BookName,Author,Publisher,BookPrice FROM tbBooks WHERE BookPrice>1000;
—Проверить вставленные данные
SELECT * FROM tbSelectedBooks
Идентификатор книги |
ИмяКниги |
Автор |
Издатель |
Цена книги |
Asp. |
Публикация Рози |
1200.00 |
||
Публикация Амара |
1480.00 |
Теперь к вам:
Блог ничто без отзывов и комментариев читателей. Поэтому, пожалуйста, оставляйте свои ценные отзывы, чтобы я мог сделать этот блог лучше, и Если вам нравится моя работа; Вы можете оценить это, оставив свои комментарии, нажав кнопку «Нравится» в Facebook, подписавшись на Google+, Twitter, Linkedin и Pinterest, наткнувшись на мои публикации и подписавшись на получение бесплатных обновлений прямо в свой почтовый ящик. Оставайтесь с нами и оставайтесь на связи для получения дополнительных технических обновлений.
![]()
Вставка с использованием «не существует» на сервере SQL
0,00/5 (Нет голосов)
Узнать больше:
SQL-сервер
T-SQL
Привет всем,
Я столкнулся с проблемой при попытке вставить значения во временную таблицу, используя не существует.
Ниже приведена фиктивная таблица, которую я создал:
CREATE TABLE TEST_DEL(ID INT, NAME VARCHAR(10))
фиктивные вставки:
ВСТАВИТЬ В TEST_DEL VALUES(1, 'A') ВСТАВИТЬ В TEST_DEL VALUES(2, 'B') ВСТАВИТЬ В TEST_DEL VALUES(2, 'C') ВСТАВИТЬ В TEST_DEL VALUES(3, 'D') ВСТАВИТЬ В TEST_DEL VALUES(4, 'E')
создание структуры временной таблицы для получения одной записи для каждого значения «ID» из таблицы Test_DEL:
SELECT * INTO #TEMP FROM TEST_DEL WHERE 1=0
я подготовил следующий запрос, чтобы вставить одну запись во временную таблицу для каждого идентификатора из Test_DEL:
ВСТАВЬТЕ В #TEMP (ID, ИМЯ) ВЫБЕРИТЕ a.ID, a.NAME ИЗ TEST_DEL A ГДЕ НЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ 1 ИЗ #TEMP B ГДЕ B.ID = A.ID
здесь мое ожидание с этим запросом состоит в том, чтобы проверить каждую запись со значением идентификатора перед вставкой во временную таблицу, если она еще не существует, тогда вставьте , и если во временной таблице существует какая-либо запись со значением идентификатора, пропустите эту запись из вставки.0007
Я должен получить 4 записи в #temp, но я получаю все 5 записей.
кто-нибудь может подсказать, что не так в написанном мной запросе?
Заранее спасибо.
Что я пробовал:
Пробовал указанный выше оператор вставки с «не существует», но он не работает.
Добавить решение
1 раствор
Решение 1
Ах, хорошо, есть два экземпляра с ID=2.
Причина, по которой вы получаете все 5, заключается в том, что ID=2 не существует во временной таблице перед оператором вставки (и помните, что у вас есть только один оператор вставки, а не 4 или 5 отдельных).