Поделиться через


Создание представлений и хранимых процедур

Теперь, когда Мэри может получить доступ к базе данных TestData , вы можете создать некоторые объекты базы данных, такие как представление и хранимая процедура, а затем предоставить мэри доступ к ним. Представление — это хранимый оператор SELECT, а хранимая процедура — это один или несколько операторов Transact-SQL, которые выполняются в составе пакета.

Представления запрашиваются как таблицы и не принимают параметры. Хранимые процедуры являются более сложными, чем представления. Хранимые процедуры могут иметь как входные, так и выходные параметры, а также содержать инструкции для управления потоком кода, например инструкций IF и WHILE. Хорошей практикой программирования является использование хранимых процедур для всех повторяющихся действий в базе данных.

В этом примере вы будете использовать CREATE VIEW для создания представления, которое выбирает только два столбца в таблице Products . Затем вы будете использовать CREATE PROCEDURE для создания хранимой процедуры, которая принимает параметр цены и возвращает только те продукты, которые стоят меньше указанного значения параметра.

Чтобы создать представление

  1. Выполните следующую инструкцию, чтобы создать очень простое представление, которое выполняет инструкцию select, и возвращает имена и цены наших продуктов пользователю.

    CREATE VIEW vw_Names  
       AS  
       SELECT ProductName, Price FROM Products;  
    GO  
    
    

Тестирование представления

  1. Представления обрабатываются так же, как таблицы. Используйте инструкцию SELECT для доступа к представлению.

    SELECT * FROM vw_Names;  
    GO  
    
    

Создание хранимой процедуры

  1. Следующая инструкция создает имя pr_Namesхранимой процедуры, принимает входной параметр с именем @VarPrice типа moneyданных. Хранимая процедура выводит инструкцию Products less than , сцепленную с входным параметром, который изменяется с money типа данных на тип символьных varchar(10) данных. Затем процедура выполняет SELECT инструкцию в представлении, передав входной параметр в рамках WHERE условия. Это возвращает все продукты, которые стоят меньше значения входного параметра.

    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 таблицу на занятии 1 с ценой, меньшей 10.00.

    EXECUTE pr_Names 10.00;  
    GO  
    
    

Следующая задача на занятии

Предоставление доступа к объекту базы данных

См. также

CREATE VIEW (Transact-SQL)
СОЗДАТЬ ПРОЦЕДУРУ (Transact-SQL)