У меня есть таблица с миллионами записей SQL DB. Я хочу вставить запись, если новая не является дубликатной записью. Но я не хочу проверять, существует ли повторяющаяся запись. Есть ли способ вставить напрямую, и если существует повторяющаяся запись, просто игнорируйте новую вставку?SQL Server Вставка без дубликата
ответ
Вы могли бы добиться того, что вы хотите, применяя UNIQUE INDEX
на стол и указав IGNORE_DUP_KEY ON
:
Определяет реакцию на ошибку, когда операция вставки пытается вставить повторяющиеся значения ключа в уникальный индекс. Опция
IGNORE_DUP_KEY
применяется только для операций вставки после того, как индекс создан или перестроен. Опция не действует при выполненииCREATE INDEX
,ALTER INDEX
илиUPDATE
. По умолчаниюOFF
.ON
будет происходить предупреждающее сообщение, когда повторяющиеся ключевые значения вставляются в уникальный индекс. Только строки, нарушающие ограничение уникальности, потерпят неудачу.
Таким образом, вставка будет успешной для новых уникальных строк, но вы не можете избежать предупреждения.
Вы бы создать этот показатель во всех колонках, с помощью которого вы определяете уникальность/дубликаты - которые могут или не могут быть все столбцы в таблице - вы не дали нам определение для работы.
Если вы вставляете запись из Table
INSERT INTO INSERT_TABLE_NAME
(.....)
SELECT
(.....)
FROM TABLE_NAME T1
INNER JOIN INSERT_TABLE_NAME T2
ON T1.COLUMN_NAME1<>T2.COLUMN_NAME1
OR T1.COLUMN_NAME2<>T2.COLUMN_NAME2
OR ...
Если вы вставляете запись по values
INSERT INTO INSERT_TABLE_NAME
(.....)
VALUES
(.....)
WHERE
ON VALUE1<>T2.COLUMN_NAME1
OR VALUE2<>T2.COLUMN_NAME2
мое решение подходит только когда колонна в вас таблице в разумное число.
Ofcouse @Damien_The_Unbeliever дал лучшее решение. Но вы не сможете его реализовать. После некоторого момента.
- 1. Вставка записей без дубликата
- 2. Вставка машинописного текста без дубликата
- 3. SQL Вставка без дублирования
- 4. sql server, составные ключи - игнорирование дубликата
- 5. SQL SERVER: вставка данных
- 6. Условный вставка SQL Server
- 7. SQL Server Условный Вставка
- 8. Выбрать без дубликата
- 9. Вставка GUID в SQL Server
- 10. Вставка данных в SQL Server
- 11. Sql Server SSIS условная вставка
- 12. MS SQL Server, многократная вставка
- 13. SQL Server Вставка запросов проблема
- 14. PowerShell 4 SQL Server Вставка
- 15. SQL Server 2008 Вставка ошибка
- 16. Hibernate/SQL Server - Каскадная вставка?
- 17. XML в SQL Server Вставка
- 18. Массовая вставка в SQL Server
- 19. Массовая вставка C# datatable to sql server - Эффективная проверка на наличие дубликата
- 20. Вставка дубликата записи с помощью Npgsql
- 21. Как получить все записи без дубликата
- 22. Массовая вставка данных в таблицу SQL Server без блокировки
- 23. Рейтинг без дубликата
- 24. Конкат-лист без дубликата
- 25. Как получить последний выполненный TC без дубликата
- 26. объединенный дисплей таблицы без дубликата
- 27. Поиск запроса для получения записей без дубликата
- 28. Поиск дубликата числа в парах таблиц SQL Server в C#
- 29. pl/sql обработка дубликата
- 30. Вставка/обновление массовых записей SQL Server
проверить утверждение MERGE: http://technet.microsoft.com/en-us/library/bb510625.aspx –
Возможный дубликат [Решения для INSERT или UPDATE на SQL Server] (http://stackoverflow.com/questions/108403/solutions-for-insert-or-update-on-sql-server) –
А также другие: http://stackoverflow.com/questions/9638185/insert-into-ignore-duplicates-that-are-not- первичный ключ, http://stackoverflow.com/questions/8854997/insert-ignore-and-on-duplicate-key-update-not-working-in-sql-server-2008-r2 и т. д. –