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


Оператор CREATE PROCEDURE (Microsoft Access SQL)

Область применения: Access 2013, Office 2013

Создает сохраняемую процедуру.

Примечание.

Ядро СУБД Access не поддерживает использование оператора CREATE PROCEDURE или любые операторы DDL с базами данных с ядром СУБД Jet, не принадлежащими Microsoft.

Синтаксис

Процедура CREATE PROCEDURE [param1 datatype[, param2 datatype[, ...]] Sqlstatement AS

Оператор CREATE PROCEDURE состоит из трех частей:

Часть Описание
procedure Название процедуры. Необходимо выполнение стандартных соглашений об именовании.
param1, param2 От 1 до 255 имен полей или параметров. Пример:

CREATE PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime;

Дополнительные сведения о параметрах см. в разделе ПАРАМЕТРЫ.
datatype Один из основных типов данных Microsoft Access SQL или их синонимов.
sqlstatement Оператор SQL, например SELECT, UPDATE, DELETE, INSERT, CREATE TABLE, DROP TABLE и т. д.

Комментарии

Оператор SQL состоит из выражения PROCEDURE, определяющего имя процедуры, необязательный список определений параметров и одного оператора SQL.

Имя процедуры не может совпадать с именем существующей таблицы.

Пример

В этом примере присваивается имя запросу CategoryList и выполняется вызов процедуры EnumFields, которую вы можете найти в приведенном примере для оператора SELECT.

    Sub ProcedureX() 
     
        Dim dbs As Database, rst As Recordset 
        Dim qdf As QueryDef, strSql As String 
         
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        strSql = "PROCEDURE CategoryList; " _ 
            & "SELECT DISTINCTROW CategoryName, " _ 
            & "CategoryID FROM Categories " _ 
            & "ORDER BY CategoryName;" 
         
        ' Create a named QueryDef based on the SQL 
        ' statement. 
        Set qdf = dbs.CreateQueryDef("NewQry", strSql) 
     
        ' Create a temporary snapshot-type Recordset. 
        Set rst = qdf.OpenRecordset(dbOpenSnapshot) 
     
        ' Populate the Recordset. 
        rst.MoveLast 
                 
        ' Call EnumFields to print the contents of the  
        ' Recordset. Pass the Recordset object and desired 
        ' field width. 
        EnumFields rst, 15 
         
        ' Delete the QueryDef because this is a 
        ' demonstration. 
        dbs.QueryDefs.Delete "NewQry" 
         
        dbs.Close 
     
    End Sub