[MS-SQL] 프로시져에서 특정문자로 분리하여 여러건 입력하기
CREATE PROCEDURE [dbo].[_T_ARR_SAVE]
@an_idx bigint, @as_kind nvarchar(20), @as_codeS nvarchar(512), @as_nameS nvarchar(512)
WITH EXEC AS CALLER
AS
/*───────────────────────────────────────
모두 삭제후 다시 저장
───────────────────────────────────────*/
DECLARE @ls_Code nVarchar(20)
DECLARE @ls_Name nVarchar(20)
DELETE FROM mnpbanana.a_Jboard_read_targer
WHERE jb_idx = @an_idx
WHILE CHARINDEX(',',@as_codeS) <> 0 -- CHARINDEX(A, B) 는 B.Split('A') 랑 같다고 보면 될듯
BEGIN
/* , 로 나눈 첫번째 인자를 INSERT 시킨다. */
SET @ls_Code = rtrim(ltrim(SUBSTRING(@as_codeS, 1, CHARINDEX(',', @as_codeS) -1 )))
SET @ls_Name = rtrim(ltrim(SUBSTRING(@as_nameS, 1, CHARINDEX(',', @as_nameS) -1 )))
INSERT INTO a_board_read_targer
( jb_idx, jb_kind, jb_code, jb_name )
VALUES ( @an_idx, @as_kind, @ls_Code, @ls_Name)
/* 업데이트 된 맨 앞 한자리를 빼고 다시 SET 해주면서 루프를 돈다. */
SET @as_codeS = SUBSTRING(@as_codeS, CHARINDEX(',', @as_codeS) +1, LEN(@as_codeS))
SET @as_nameS = SUBSTRING(@as_nameS, CHARINDEX(',', @as_nameS) +1, LEN(@as_nameS))
END
COMMIT
GO
@an_idx bigint, @as_kind nvarchar(20), @as_codeS nvarchar(512), @as_nameS nvarchar(512)
WITH EXEC AS CALLER
AS
/*───────────────────────────────────────
모두 삭제후 다시 저장
───────────────────────────────────────*/
DECLARE @ls_Code nVarchar(20)
DECLARE @ls_Name nVarchar(20)
DELETE FROM mnpbanana.a_Jboard_read_targer
WHERE jb_idx = @an_idx
WHILE CHARINDEX(',',@as_codeS) <> 0 -- CHARINDEX(A, B) 는 B.Split('A') 랑 같다고 보면 될듯
BEGIN
/* , 로 나눈 첫번째 인자를 INSERT 시킨다. */
SET @ls_Code = rtrim(ltrim(SUBSTRING(@as_codeS, 1, CHARINDEX(',', @as_codeS) -1 )))
SET @ls_Name = rtrim(ltrim(SUBSTRING(@as_nameS, 1, CHARINDEX(',', @as_nameS) -1 )))
INSERT INTO a_board_read_targer
( jb_idx, jb_kind, jb_code, jb_name )
VALUES ( @an_idx, @as_kind, @ls_Code, @ls_Name)
/* 업데이트 된 맨 앞 한자리를 빼고 다시 SET 해주면서 루프를 돈다. */
SET @as_codeS = SUBSTRING(@as_codeS, CHARINDEX(',', @as_codeS) +1, LEN(@as_codeS))
SET @as_nameS = SUBSTRING(@as_nameS, CHARINDEX(',', @as_nameS) +1, LEN(@as_nameS))
END
COMMIT
GO