У меня есть куча запросов на удаление, которые я должен скопировать в значения для каждого. Например;
delete from source where id in (3300,3301, 2872)
delete from performance where srcid in (3300,3301, 2872)
delete from title where id in (3300,3301, 2872)
delete from name where srcid in (3300,3301, 2872)
Я хочу объявить значения (3300,3301, 2872), потому что они меняются каждый раз. Я должен скопировать для каждого запроса. Я понимаю, как объявить, когда это одно число с объявлением и установить @source =, но я не совсем понимаю, как получить входные данные
Я пробовал много вариантов из сети. Это последний вариант. Не выдает ошибку, но не находит элементы в списке. Я не смог выяснить создание sp или функции из сети.
DECLARE @sourcelist VARCHAR = '2380,2379'
--SET @sourcelist = '2380' + ',' + '2379'
select * from dbo.Source where id in (@sourcelist)
DECLARE @sourcelist VARCHAR = '2380,2379'
--SET @sourcelist = '2380' + ',' + '2379'
select * from dbo.Source where id in (@sourcelist)
--------------------------------
Вот вариант sp
DECLARE @sourcelist VARCHAR(500)
DECLARE @delete1 NVARCHAR(4000)
SET @delete1 = 'delete from [EID].[FileLoadLog] where srcid in (CAST(@sourcelist AS varchar(500)))'
BEGIN
EXEC sp_executesql @delete1
END
, каждый из которых представляет собой одну строку. Я ожидаю удаления 2 строк.