--저장프로시저(Stored Procedure)
--긴 문장을 짧은 하나의 명령어로 대체
--C#의 함수처럼, 매개변수 및 반환값 처리 가능
--인터프리터 방식이 아닌 컴파일 방식 : 속도빠름
use Tue
Drop table Categories2
Create Table dbo.Categories2
(
CategoryID2 Int Identity(1,1) Not Null Primary Key, --카테고리번호
CategoryName2 Varchar(50), --카테고리명
SuperCategory2 Int Null, --부모카테고리번호(확장용)
Align2 SmallInt Default(0) --카테고리보여지는순서(확장용)
)
Go
-- Insert
Insert Categories2 Values('컴퓨터',Null, DEFAULT)
Insert Categories2 Values('노트북',1, 1)
Insert Categories2 Values('핸드폰',Null, 2)
Insert Categories2 Values('신규',3, 3)
--all
Select *From Categories2
--[1] 입력 저장 프로시저
Create Procedure dbo.AddCategory
(
@CategoryName2 VarChar(50),
@SuperCategory2 Int ,
@Align2 Int
)
As
Insert Into Categories2 Values(@CategoryName2,@SuperCategory2,@Align2)
Go
--프로시저로 입력
Execute AddCategory '냉장고', 3, 1
Go
--[2] 출력 저장 프로시저
Create Proc dbo.GetCategories
As
Select *From Categories2 Order By CategoryID2 Asc, Align2 Asc
Go
Exec GetCategories
Go
--[3] 상세 저장 프로시저
Create Proc dbo.GetCategoryByCategoryID
@CategoryID2 Int --매개변수사용
As
Select *From Categories2 Where CategoryID2 = @CategoryID2
Go
--실행
Exec GetCategoryByCategoryID 1
Go
--[4] 수정 저장 프로시저
Create Procedure dbo.UpdateCategory
(
@CategoryName2 Varchar(50),
@CategoryID2 Int
)
As
Update Categories2
Set
CategoryName2 = @CategoryName2
Where
CategoryID2 = @CategoryID2
Select *From Categories2
Go
--실행 : 1번 카테고리명을 'Computer' 변경
Exec UpdateCategory 'computer',1
Go
--[5] 삭제 저장 프로시저
Create Proc dbo.DeleteCategory
@CategoryID Int
As
Begin Tran
Delete Categories2
Where CategoryID2 = @CategoryID
Select @@ROWCOUNT --삭제된 데이터의 개수 : 1
If @@ERROR > 0
Begin
RollBack Tran
End
Commit Tran --여기까지 에러지 없이 왔다면 실행 완료
Go
Exec DeleteCategory 7
Go
Select *From Categories2
--[6] 검색 저장 프로시저
--카테고리이름이 (???) 인것은 검색
Alter Proc dbo.FindCategory
@CategoryName VarChar(50)
As
--검색어 = ' + @검색어 + ' 매개변수화 하여 출력 해줄 수 있다
Declare @strSql VarChar(500)
Set @strSql = '
Select *From Categories2
Where CategoryName2 Like ''%'+ @CategoryName +'%'' '
Print @strSql
Exec(@strSql)
Go
FindCategory '노트북'
Go
FindCategory '핸드폰'
Go
-----------------------------------------
Create Proc dbo.PrintString
@Message VarChar (50)
As
Declare @strSql VarChar(255)
Set @strSql = '''@' + @Message + '@'''
Print @strSql
Go
Printstring '안녕'
'.Net Project > WindowServer2008' 카테고리의 다른 글
24장 인덱스 효과 (0) | 2009.09.16 |
---|---|
23장 도메인생성 ~ 웹사이트 DB연결 (0) | 2009.09.15 |
21장 View (상세,수정,편집,검색,찾기) (0) | 2009.09.15 |
20장 While문 (0) | 2009.09.14 |
19장 Select문 (0) | 2009.09.14 |