실험 8 T-SQL 사용
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'
데이터베이스 실험은 이것으로 끝나고 마지막 과정을 설계했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.