Моя задача - автоматизировать некоторые действия (удаление старых строк из БД), которые теперь выполняются вручную. В настоящее время у меня есть два сценария MSSQL. Первый выбирает идентификаторы, с которыми мне нужно работать, а также количество строк для удаления для каждого идентификатора. И, похоже, что:Как слить два SQL-скрипта?
SELECT e.batchId, b.Name, count (*) "Count"
FROM dbo.[Logs] e
join [dbo.[Batch] b on b.Id = e.batchId
Group by e.batchId, b.Name
Having count(*) > 500
order by [Count]
Итак, после того, как я получаю все идентификаторы я должен работать, я запускаю второй один сценарий для каждого ID (изменяя его количество в сценарии вручную и relunching его для каждой строки от первого выбора):
Declare @counter INT
Declare @fdel INT
Declare @csize INT
Declare @batchId INT
select @batchId=666777 --HERE IS AN ID I CHANGE MANUALLY AND RELAUNCH THE SECOND ONE SCRIPT FOR IT
select @csize=500
select @counter = 0
select @fdel=count(*) from dbo.Logs where batchId = @batchId
While (@counter < @fdel)
BEGIN
select @counter = @counter + @csize
BEGIN TRAN
DELETE top(@csize) from dbo.Logs where batchId = @batchId
COMMIT TRAN
END
Итак, как эти сценарии будут объединены в один, чтобы запустить весь сценарий только один раз?