SQL에서 분할 함수의 결과를 사용하는 방법을 찾지 못했습니다. 그것은 테이블을 반환하고 "반환"각 반환 데이터를 선택하는 "foreach"와 같은 기능을 수행하는 방법을 모르겠다.분할 SQL 서버 2008 및 삭제
ALTER FUNCTION [dbo].[Split] (@separator char(1), @value varchar(512))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@separator, @value)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@separator, @value, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT pn AS Id,
SUBSTRING(@value, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS Data
FROM Pieces
)
는 반환이 :
DELETE FROM myTable
WHERE OneColumnInMyTable = @OneColumnInMyTable AND @ImportantValue = @Data
@Data 각에 해당합니다
@separator = ','
@value = '13,14,15'
Id Data
1 13
2 14
3 15
그럼 내가 그런 일을 할
는 분할 기능을 보면 value 분할의 리턴에있는 데이터.foreach(Data in ReturnOfMySplitFunction)
{
DELETE FROM myTable
WHERE OneColumnInMyTable = @OneColumnInMyTable AND @ImportantValue = Data
}
당신에게 그렇게 할 수있는 몇 가지 아이디어를 가지고 :
목적은하는 것입니다? 그것은 SQL 서버의 동안 가능한가요? 감사합니다
내 대답을 확인하십시오 ... –