너무 기초적인 것이지만 프로시저를 처음 써봐서 못 찾고 있습니다 ㅠㅠ...
INSERT INTO CM_DEPT (DEPT_ID, REG_DT, REG_USER_ID, DEPT_NM, DEPT_ORD, USE_FL, UPPER_DEPT_ID)
VALUES('부서아이디', getdate(), 'admin', '부서명', 순서, 'Y', 'temp')
INSERT INTO CM_USER (USER_ID, AUTH_CD, REG_DT, REG_USER_ID, COMPANY_CD, ENTERPRIZED_ID, PASSWORD, USER_NM, DEPT_ID, POSI_ID, STATUS_CD, MIDDLE_MANAGE_FL, CU_AFFILIATE_CD, CU_PERSONAL_NUMBER)
VALUES('사용자아이디', 'ROLE_USER', getdate(), 'admin', 'WFG-D656-DC02-DBBE', 'WOORIBACKG-0C81-D261-4203', 'A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ=', '사용자이름', '좀전에 만든 부서명', 'POSI_000000000000008', 'WorkStatus1', 'N', 'WR1', 주민등록번호 앞자리임 숫자임)
1. 부서를 만들고
2. 그 부서마다 100명씩 넣어 주고 싶은데
3. 이 동작을 열번 정도 반복하고 싶습니다...
4. 이 동작을 반복시 부서명과 아이디는 기본 부서명 + int로 뒤에 증가값 붙여 줌
5. 사용자명도 기본 사용자명과 사용자 아이디도 + int로 뒤에 증가값 붙여서 만들고 싶습니다
그런데 프로시저에서 변수를 선언하고 정의하는 걸 어떤 식으로 해야 하는지 정확히 모르겠습니다...
CREATE PROCEDURE CREATE_TEST_DEPTS_AND_USERS
@TEMP_DEPTID VARCHAR(10),
@TEMP_DEPTNAME VARCHAR(10),
@TEMP_DEPTORDER INT,
@TEMP_USERID VARCHAR(10),
@TEMP_USERNAME VARCHAR(10),
@TEMP_PERSONAL_NUMBER INT
AS
한 뒤에 쭉 써야 한다고 생각했는데 서치를 해봐도 형식을 잘 모르겠습니다...
도움 부탁드립니다
+ 뭔가 제가
1. 2중 WHILE을 쓰면 되겠다고 생각이 들어서
CREATE PROCEDURE testDU
DECLARE @CNT INT
DECLARE @I INT
DECLARE @TEMP_DEPTID VARCHAR(10)
DECLARE @TEMP_DEPTNAME VARCHAR(10)
DECLARE @TEMP_DEPTORDER INT
DECLARE @TEMP_USERID VARCHAR(10)
DECLARE @TEMP_USERNAME VARCHAR(10)
DECLARE @TEMP_PERSONAL_NUMBER INT
SET
@I = 0
@CNT = 10
WHILE(@I<@CNT)
BEGIN
INSERT INTO CM_DEPT (DEPT_ID, REG_DT, REG_USER_ID, DEPT_NM, DEPT_ORD, USE_FL, UPPER_DEPT_ID)
VALUES('부서아이디', getdate(), 'admin', '부서명', 순서, 'Y', 'temp')
SET @I = @I+1
END
INSERT INTO CM_USER (USER_ID, AUTH_CD, REG_DT, REG_USER_ID, COMPANY_CD, ENTERPRIZED_ID, PASSWORD, USER_NM, DEPT_ID, POSI_ID, STATUS_CD, MIDDLE_MANAGE_FL, CU_AFFILIATE_CD, CU_PERSONAL_NUMBER)
VALUES('사용자아이디', 'ROLE_USER', getdate(), 'admin', 'WFG-D656-DC02-DBBE', 'WOORIBACKG-0C81-D261-4203', 'A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ=', '사용자이름', '좀전에 만든 부서명', 'POSI_000000000000008', 'WorkStatus1', 'N', 'WR1', 주민등록번호 앞자리임 숫자임)
END
이렇게 만들어 놓고는 또 헤메고 있습니다... ㅠㅠ
자답입니다
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[CREATE_TEST_DEPT_USER]
-- Add the parameters for the stored procedure here
--<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
--<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
DECLARE @CNT INT
DECLARE @CNT2 INT
DECLARE @I INT
DECLARE @J INT
DECLARE @TEMP_DEPT VARCHAR(20)
DECLARE @TEMP_USER VARCHAR(20)
SET @CNT = 10
SET @CNT2 = 100
SET @I=0
SET @J=0
SET @TEMP_DEPT = 'TempDept_'
SET @TEMP_USER = 'TempUser_'
WHILE(@I < @CNT)
BEGIN
INSERT INTO CM_DEPT (DEPT_ID, REG_DT, REG_USER_ID, DEPT_NM, DEPT_ORD, USE_FL, UPPER_DEPT_ID)
VALUES(@TEMP_DEPT + CONVERT(VARCHAR,@I), getdate(), 'admin', @TEMP_DEPT + CONVERT(VARCHAR,@I), @I, 'Y', 'temp')
WHILE(@J < @CNT2)
BEGIN
INSERT INTO CM_USER (USER_ID, AUTH_CD, REG_DT, REG_USER_ID, COMPANY_CD, ENTERPRIZED_ID, PASSWORD, USER_NM, DEPT_ID, POSI_ID, STATUS_CD, MIDDLE_MANAGE_FL, CU_AFFILIATE_CD)
VALUES( CONVERT(VARCHAR,@I) + @TEMP_USER + CONVERT(VARCHAR,@J), 'ROLE_USER', getdate(), 'admin', 'WFG-D656-DC02-DBBE', 'WOORIBACKG-0C81-D261-4203', 'A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ=', CONVERT(VARCHAR,@I) + @TEMP_USER + CONVERT(VARCHAR,@J), @TEMP_DEPT + CONVERT(VARCHAR,@I), 'POSI_000000000000008', 'WorkStatus1', 'N', 'WR1')
SET @J = @J+1
END
SET @I = @I+1
SET @J = 0
END
END
GO