실험 8 T-SQL 사용

실험 6TSQL의 응용
 
1. 실험 목적:
1. SQL에 장악SERVER 2012 트리거의 정의와 역할
2. SQL에 장악SERVER 2012 스토리지 프로세스의 정의 및 역할
3. SQL에 장악SERVER 2012의 트랜잭션 정의 및 역할
 
2. 실험 준비
교실 노트 중의 관련 내용을 복습하고 관련 절차를 설계한다.
 
3. 실험 내용
1. 다음과 같은 범례를 검증하고 결과를 기록하며 각 트리거와 저장 과정의 작용을 분석한다.
예1: CREATE TRIGGER tri1
ON sc
FOR insert
AS
update student setcnum=cnum+1
wherestudent.sno=(select sno from inserted where student.sno=inserted.sno)
//-----------------------------------------------------------------------------------------------------------------------------//
예2: CREATE TRIGGER tri3
ON sc
FOR update
AS
if update(sno)
begin
   update student set cnum=cnum-1
   where student.sno=(select sno from deletedwhere student.sno=deleted.sno) 
   update student set cnum=cnum+1
   where student.sno=(select sno from insertedwhere student.sno=inserted.sno)
end
//-----------------------------------------------------------------------------------------------------------------------------//
예: CREATE PROCEDURECJCXPROC AS
SELECT STUDENT.SNO,SNAME,COURSE.CNO,CNAME,GRADEFROM
STUDENT,COURSE,SC WHERESTUDENT.SNO=SC.SNO AND  COURSE.CNO=SC.CNO
GO
//-----------------------------------------------------------------------------------------------------------------------------//
예4: CREATE PROCEDURECJCXPROC1 @x char(5)
AS
selectsc.sno,sname,sc.cno,cname,grade from student,course,sc where student.sno=sc.snoand course.cno=sc.cno and sc.sno=@x order by sc.cno
GO
//-----------------------------------------------------------------------------------------------------------------------------//
예5:ZZZZ
   end
2. 저장 프로세스를 만드는데 그 기능은 한 학생의 성과 이름을 제시하는 것이다. 이 저장 프로세스는 이 학생이 배운 과정 이름과 이 과정의 점수를 나타낸다.이 과정을 정의하고 실행을 호출하여 결과를 관찰합니다.
3. 저장 과정에서 사무 조작을 사용하여 저장 과정을 정의한다. 이 과정의 역할은 실험 샘플 데이터베이스의Student표에 데이터를 삽입하고 데이터를 삽입할 때 입력한 학생의 이름이 중복되는지 검증하는 것이다.중복되지 않으면 데이터 삽입이 유효합니다.그렇지 않으면, 데이터를 삽입하는 것이 잘못되었습니다. 스크롤 사무 취소 작업입니다.
 
 
4. 실험 보고서 내용
오류가 발생하면 원인을 분석하고 수정하며 정확한 명령을 기록합니다.
 code:
CREATE  TRIGGER tri1
ON sc
FOR insert
AS
update student set cnum=cnum+1
where student.sno=(select sno from inserted where student.sno=inserted.sno)

CREATE  TRIGGER tri3
ON sc
FOR update
AS
if update(sno)
begin
   update student set cnum=cnum-1
   where student.sno=(select sno from deleted where student.sno=deleted.sno)  
   update student set cnum=cnum+1
   where student.sno=(select sno from inserted where student.sno=inserted.sno)
end


CREATE PROCEDURE CJCXPROC AS
SELECT STUDENT.SNO,SNAME,COURSE.CNO,CNAME,GRADE FROM 
STUDENT,COURSE,SC WHERE STUDENT.SNO=SC.SNO AND  COURSE.CNO=SC.CNO
GO

CREATE PROCEDURE CJCXPROC2 @x char(5)
AS
select sc.sno,sname,sc.cno,cname,grade from student,course,sc where student.sno=sc.sno and course.cno=sc.cno and sc.sno=@x order by sc.cno
GO

begin transaction t11 with mark 'aaa'
declare @x int
set @x=1
delete from student where sno='200215122'
if @x=-1
      begin
            rollback transaction t11
   end
else
   begin
            delete from sc where sno='200215122'
            commit transaction t11
END

 alter PROCEDURE PROC5
  as 
 DECLARE @y CHAR(10)
 set @y = '  ';

 select student.sno,sc.cno,grade
 from sc,student
 where sname = @y
 return
 go

 exec proc5

 create procedure proc6
    @x1 char(9),@x2 char(20),@x3 char(2),@x4 int,@x5 char(20)
 as
 begin transaction t12 with mark 'aba'
 insert into student values( @x1,@x2,@x3,@x4,@x5)
select * from student

DECLARE @x CHAR(10) 
 select @x = count(sname) from student
       where sname =@x2

if @x>1
   begin
       rollback transaction t12
	   select * from student
   end
else
   begin
       
       commit transaction t12
	   select * from student
   End
   go

   
  exec proc6  '200215131','  22',' ',20,'cs'

데이터베이스 실험은 이것으로 끝나고 마지막 과정을 설계했다.
 
 
 
 
 

좋은 웹페이지 즐겨찾기