Как разделить строку, чтобы получить доступ к элементу x? - в решениях использовались CTE
и WHILE
. Я сказал, что мой запрос не использует WHILE, потому что это не очень хорошая производительность, она замедляет скорость .. То же самое касается CURSOR
Я использую SQL Server 2012. Я получу строку идентификаторов (@IDs
), которую необходимо проверить по значению (в данном случае: 1).
IF (SELECT CycleId
FROM TABLE1
WHERE ID in (@IDs) ) = '1'
BEGIN
-- ABORT TRANSACTION AND FINISH THE QUERY
END
ELSE
BEGIN
-- START TRANSACTION FOR THE Id....
END
Это не работает. Мне сказали, что следует избегать использования WHILE
или CURSOR
.
Мне нужно запустить несколько значений, присутствующих в @Ids (это может быть 100 значений или просто 5 значений, разделенных запятой,). Если хотя бы один из этих идентификаторов имеет CycleId = 1, он должен полностью остановить операцию. Может быть, это может быть ...
BEGIN
RAISERROR ('It is not possible to complete the transaction.',20,1)
BREAK
END
1-й случай:
@IDs = 121, 434, 543, 345
Id CycleId
---------------
121 1
434 2
543 1
345 1
в этом случае операция должна быть остановлена на @Id 121 (она не должна читать / проверять любые другие идентификаторы и должна выдавать ошибку, как я показывал ранее)
2-й случай
@IDs = 121, 434, 543, 345
Id CycleId
--------------
121 3
434 2
543 5
345 6
В этом случае операция должна выполнять транзакцию.
Спасибо!