이제 Mary가 TestData 데이터베이스에 액세스할 수 있으므로 보기 및 저장 프로시저와 같은 일부 데이터베이스 개체를 만든 다음 Mary에게 액세스 권한을 부여할 수 있습니다. 뷰는 저장된 SELECT 문이며 저장 프로시저는 일괄 처리로 실행되는 하나 이상의 Transact-SQL 문입니다.
뷰는 테이블처럼 쿼리되며 매개 변수를 허용하지 않습니다. 저장 프로시저는 보기보다 더 복잡합니다. 저장 프로시저는 입력 및 출력 매개 변수를 모두 포함할 수 있으며 IF 및 WHILE 문과 같은 코드 흐름을 제어하는 문을 포함할 수 있습니다. 데이터베이스의 모든 반복 작업에 저장 프로시저를 사용하는 것이 좋은 프로그래밍 방법입니다.
이 예제에서는 CREATE VIEW를 사용하여 Products 테이블의 열 중 두 개만 선택하는 뷰를 만듭니다. 그런 다음 CREATE PROCEDURE를 사용하여 가격 매개 변수를 허용하고 지정된 매개 변수 값보다 비용이 적게 드는 제품만 반환하는 저장 프로시저를 만듭니다.
뷰를 만들려면
다음 문을 실행하여 select 문을 실행하고 제품의 이름과 가격을 사용자에게 반환하는 매우 간단한 보기를 만듭니다.
CREATE VIEW vw_Names AS SELECT ProductName, Price FROM Products; GO
뷰를 테스트하다
뷰는 테이블처럼 처리됩니다.
SELECT문을 사용하여 보기에 액세스합니다.SELECT * FROM vw_Names; GO
저장 프로시저를 만들려면
다음 문은 저장 프로시저 이름을
pr_Names만들고 데이터 형식money이라는 입력 매개 변수@VarPrice를 허용합니다. 저장 프로시저는 입력 매개 변수를money데이터 형식에서varchar(10)문자 데이터 형식으로 변경하고,Products less than문장과 연결하여 출력합니다. 그런 다음 프로시저는 입력 매개 변수를WHERE절의 일부로 전달하여 뷰에서SELECT문을 실행합니다. 그러면 입력 매개 변수 값보다 적은 비용이 드는 모든 제품이 반환됩니다.CREATE PROCEDURE pr_Names @VarPrice money AS BEGIN -- The print statement returns text to the user PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10)); -- A second statement starts here SELECT ProductName, Price FROM vw_Names WHERE Price < @varPrice; END GO
저장 프로시저 테스트
저장 프로시저를 테스트하려면 다음 문을 입력하고 실행합니다. 프로시저는 1단원의
Products테이블에 입력된 두 제품 중에서 가격이10.00보다 작은 제품들의 이름을 반환해야 합니다.EXECUTE pr_Names 10.00; GO