Insert ms sql select: SQL INSERT INTO SELECT Statement
Первичный ключ
Содержание
— SQL Server — можно ли выполнить запрос на выбор, чтобы указать имена столбцов для вставки в команду?
Задавать вопрос
спросил
Изменено
1 год, 2 месяца назад
Просмотрено
214 раз
Вот пытаюсь вставить ту же таблицу саму в себя, но у меня обрыв из-за повторения первичных ключей. Следовательно, я думаю сначала вставить те же строки без первичного ключа, а затем другой запрос вставит первичный ключ auto_increment.
Следующий запрос прерывается из-за первичного ключа (очевидно):
INSERT INTO table_name SELECT * FROM имя_таблицы;
Хотя следующий запрос возвращает все поля, за исключением первичного ключа:
ВЫБЕРИТЕ ИМЯ_СТОЛБЦА ИЗ INFORMATION_SCHEMA. COLUMNS ГДЕ ИМЯ_ТАБЛИЦЫ = имя_таблицы КРОМЕ ВЫБЕРИТЕ ИМЯ_СТОЛБЦА ИЗ INFORMATION_SCHEMA.TABLE_CONSTRAINTS [tc] ПРИСОЕДИНЯЙТЕСЬ К INFORMATION_SCHEMA.KEY_COLUMN_USAGE [ku] ON tc.CONSTRAINT_NAME = ku.CONSTRAINT_NAME И ku.table_name = table_name
Теперь, если я попытаюсь вставить в таблицу не каждый столбец, правильный синтаксис будет следующим:
INSERT INTO имя_таблицы (<список имен столбцов>) SELECT <список имен столбцов> FROM table_name
Но если я попытаюсь заставить его работать для моего случая, следующий запрос сломается из-за того, что не поддерживается структура таблицы:
INSERT INTO dbo.drugs ВЫБЕРИТЕ (ВЫБЕРИТЕ ИМЯ_СТОЛОНЦА ИЗ INFORMATION_SCHEMA.COLUMNS ГДЕ TABLE_NAME = "наркотики" КРОМЕ ВЫБЕРИТЕ ИМЯ_СТОЛБЦА ИЗ INFORMATION_SCHEMA.TABLE_CONSTRAINTS [tc] ПРИСОЕДИНЯЙТЕСЬ К INFORMATION_SCHEMA.KEY_COLUMN_USAGE [ku] ON tc.CONSTRAINT_NAME = ku.CONSTRAINT_NAME И ku.table_name = 'наркотики') ОТ наркотиков;
Вышеприведенное прерывается, потому что я не упомянул имена столбцов в первой строке. Есть ли способ заставить это работать?
- sql-сервер
- первичный ключ
3
Примерно так:
объявлять @sql nvarchar(max) = ( выберите конкат (' вставить в Drugs(',STRING_AGG(cast(имя как nvarchar(max)), ', ') внутри группы (упорядочить по column_id),') выберите ',STRING_AGG(cast(name as nvarchar(max))), ', ') внутри группы (упорядочить по column_id),' от наркотиков) из sys.columns c где c.object_id = object_id('наркотики') и c.is_identity = 0 ) печать(@sql) исполняемый (@sql)
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.
SQL Server Массовая вставка — Google Такой
AlleShoppingVideosBilderMapsNewsBücher
Такой вариант
Подсказка: Begrenze diesuche auf deutschsprachige Ergebnisse. Du kannst deinesuchsprache in den Einstellungen ändern.
МАССОВАЯ ВСТАВКА (Transact-SQL) — SQL Server — Microsoft Learn
Learn.Microsoft.com › Обучение › SQL
26.03.2023 · МАССОВАЯ ВСТАВКА { имя_базы_данных.имя_схемы.имя_таблицы_или_представления | имя_схемы.имя_таблицы_или_представления | table_or_view_name } FROM ‘data_file’ [ WITH …
Синтаксис · Armeree
ОБЛАСТКА Вставки (Transact -SQL) — SQL Server — Microsoft Learn
Learn.microsoft.com ›Learn› SQL ›SQL Server
21.03.2023 · Заявление Insert Onser определяемая пользователем транзакция для импорта данных в таблицу или представление. Необязательно, чтобы использовать несколько …
Синтаксис · Аргументы
SQL Server BULK INSERT
www. sqlservertutorial.net › sql-server-administration
В этом руководстве вы узнаете, как использовать оператор SQL Server BULK INSERT для импорта файла данных в таблицу базы данных.
Массовая вставка данных в SQL Server
www.mssqltips.com › sqlservertip › bulk-insert-data…
02.03.2022 · Первым аргументом для BULK INSERT должно быть имя таблицы или имя представления. · Второй аргумент — это имя исходного файла с полным файлом …
Ähnliche Fragen
Как выполнить массовую вставку в SQL Server?
Как вставить 1000 строк в SQL Server?
Как выполнить массовую вставку в SQL Server из CSV?
Как выполнить массовую вставку в SQL Server из текстового файла?
Минимальное протоколирование вставок массовой загрузки в SQL Server ты должен знать.
МАССОВАЯ ВСТАВКА — T-SQL Ninja
2 Как Загрузить CSV-файлы с помощью оператора BULK INSERT SQL в …
www.youtube.com › смотреть
20. 11.2022 · Используя оператор BULK INSERT, мы можем напрямую импортировать локальный файл данных в таблицу или просмотреть в …
Дата: 5:16
Прислан: 20.11.2022
Чрезвычайно простой способ массовой вставки данных в SQL Server… — YouTube
www.youtube.com › смотреть
01.01.2023 · Массовая вставка данных в таблицу SQL Server из источника в памяти или другого источника таблица базы данных …
Добавлено: 11:33
Прислано: 01.01.2023
Более быстрые массовые вставки SQL с помощью C# — Тим Дешрайвер
timdeschryver.dev
14.08.2022 · SQL имеет встроенный механизм импорта больших объемов данных, который называется Массовая вставка. К счастью для нас, dotnet поддерживает массовую вставку с …
Что такое массовая вставка в SQL? | Темы Scaler
www.scaler.com › темы › bulk-insert-in-sql
11.12.2022 · Следующий оператор представляет собой синтаксис массовой вставки в SQL и позволяет импортировать данные или файлы в таблица или представление в SQL.