@winniuss

Как добавить в таблицу БД без повторов?

У меня есть таблица. Я заполняю ее студентами. Потом удаляю несколько строк из таблицы. Как сделать, чтобы добавились только те строки, которые были удалены? Если заполнять опять первичным ключом, то будет ошибка, что такие уже существуют. А если отключить это, то возникнут дубликаты.
  • Вопрос задан
  • 698 просмотров
Решения вопроса 2
sarapinit
@sarapinit
Точу водой камень
insert into Students
select list.Id, list.[Name] 
from 
(values	
	(1,N'Вася'),
	(2,N'Петя'),
	(3,N'Женя'),
	(4,N'Коля'),
	(5,N'Настя'),
	(6,N'Аристарх'),
	(7,N'Никодим')
) list (Id, [Name])
left join Students s on s.Id = list.Id
where s.Id IS NULL
Ответ написан
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Чтобы не было дубликатов сделайте уникальный индекс.

DECLARE @Role TABLE ( [Role] VARCHAR(100) )
DECLARE @Add  TABLE ( [Role] VARCHAR(100) )
INSERT INTO @Role SELECT TRIM( value ) FROM STRING_SPLIT( 'vocals, guitar, piano', ',' )
INSERT INTO @Add SELECT TRIM( value ) FROM STRING_SPLIT( 'bass, piano, drums', ',' )
  
INSERT INTO @Role SELECT [Role] FROM @Add WHERE [Role] NOT IN ( SELECT [Role] FROM @Role )
    
SELECT STRING_AGG( [Role], ', ' ) FROM @Role
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Может подойдет INSERT ON DUPLICATE KEY UPDATE?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы