Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Пример создания хранимой процедуры

01.01.2007
Create Procedure MyStoredProcedure
  @Parameter1 varchar(50),
  @Parameter2 int,
  @OutputParameter varchar(100) output
As
Begin
   Set @Parameter1=isNull(@Parameter1, '')
   Set @OutputParameter=@Parameter1+cast(@Parameter2 as varchar(10))
   Return 0
End

Примечания:

1) Begin..End для обрамления процедуры не обязательны. Дельфи приучил меня

их использовать и мне легче читать с ними код, но вполне можно обходится и без них. На ваше усмотрение:

 

Create Procedure MyStoredProcedure
  @Parameter1 varchar(50),
  @Parameter2 int,
  @OutputParameter varchar(100) output
As
   Set @Parameter1=isNull(@Parameter1, '')
   Set @OutputParameter=@Parameter1+cast(@Parameter2 as varchar(10))
   Return 0

 

2) Хранимая процедура всегда должна создаваться отдельным SQL запросом. Нельзя создать одним запросом несколько хранимых процедур. При написании скрипта для Query Analyser для создания нескольких процедур можно использовать директиву GO, которая воспринимается Query Analyser'ом как разделить отдельных запросов:

Create Procedure MyStoredProcedure
  @Parameter1 varchar(50),
  @Parameter2 int,
  @OutputParameter varchar(100) output
As
Begin
   Set @Parameter1=isNull(@Parameter1, '')
   Set @OutputParameter=@Parameter1+cast(@Parameter2 as varchar(10))
   Return 0
End
Go
 
Create Procedure MyStoredProcedure2
As
Select GetDate()
Go

Директива GO не является оператором SQL и при выполнения запроса из клиентского приложения не будет пониматься. Кроме того директиву GO невозможно закоментировать.


Пример её вызова:

Declare @Param1 varchar(50), @Param2 int, @OutputParam varchar(100)
 
Select @Param1='Просто строка ', @Param2=2
 
Exec MyStoredProcedure
  @Parameter1=@Param1,
  @Parameter2=@Param2,
  @OutputParameter=@OutputParam output
 
Select @OutputParam

Автор: Vit