diff --git a/procedure.sql b/procedure.sql new file mode 100644 index 0000000..29dfa67 --- /dev/null +++ b/procedure.sql @@ -0,0 +1,47 @@ +USE Study +GO + +-- »ý¼º +CREATE PROC EMP_PRO +AS + SELECT ENAME, JOB, SALARY + FROM EMPLOYEE + WHERE ENO = 109 + +GO +EXEC EMP_PRO + +-- ¼öÁ¤ +ALTER PROC EMP_PRO +AS + SELECT ENAME, JOB, SALARY + FROM EMPLOYEE + WHERE ENO = 110 + +GO +EXEC EMP_PRO + +-- ÀÔ·Â ¸Å°³º¯¼ö Ȱ¿ë +CREATE PROC EMP_PRO_PARAM +@enumber INT +AS + SELECT ENAME, JOB, SALARY + FROM EMPLOYEE + WHERE ENO = @enumber + +GO +EXEC EMP_PRO_PARAM 101 + +-- Ãâ·Â ¸Å°³º¯¼ö Ȱ¿ë +CREATE PROC EMP_PRO_OUT_PARAM +@did INT, +@avg_sal INT OUTPUT +AS + SELECT @avg_sal = AVG(SALARY) + FROM EMPLOYEE + WHERE EMPLOYEE.DNO = @did + +GO +DECLARE @AVG_SALARY INT +EXEC EMP_PRO_OUT_PARAM 30, @AVG_SALARY OUTPUT +SELECT @AVG_SALARY \ No newline at end of file diff --git a/user defined function.sql b/user defined function.sql new file mode 100644 index 0000000..22d413b --- /dev/null +++ b/user defined function.sql @@ -0,0 +1,43 @@ +USE Study +GO + +-- »ý¼º +CREATE FUNCTION MAX_SAL +(@DNO_PARA INT) +RETURNS INT +AS + BEGIN + + DECLARE @MAX_VAL INT + + SELECT @MAX_VAL = MAX(SALARY) + FROM EMPLOYEE + WHERE DNO = @DNO_PARA + + RETURN @MAX_VAL + + END + +GO +SELECT * FROM EMPLOYEE WHERE SALARY = dbo.MAX_SAL(30) + +-- Å×ÀÌºí ¹Ýȯ ÇÔ¼ö +CREATE FUNCTION EMP_DEPT +(@dno_para INT) +RETURNS @emp_dep_table TABLE( + EMP_ID INT, + EMP_NAME VARCHAR(20) + ) +AS + BEGIN + + INSERT INTO @emp_dep_table + SELECT EMPLOYEE.ENO, EMPLOYEE.ENAME + FROM EMPLOYEE + WHERE DNO = @dno_para + + RETURN + END + +GO +SELECT * FROM dbo.EMP_DEPT(20) \ No newline at end of file