erver 标识符,并且该类必须存在程序集中。如果类包含一个使用句点(.)分隔命名
空间各部分的限定命名空间的名称,则必须使用方括号([])或引号("")将类名称分隔开。指定的方法必须为该类的
静态方法。
注:clr 存储过程是通过引用 Sql Server 程序集而伊娃的存储过程。 Clr 存储过程的被耍在程序集中定义。
简单举例:
create procedure pro_student --
查询 学生成绩大于60分的学生成绩详细信息
(该表必须存在)
as
select *
from 成绩信息表 where 学生成绩 > 60
go
使用 return 语句从存储过程中返回值
Return 语句无条件终止查询、批处理以及存储过程。不执行存储过程或者批处理中 return 语句后面的语句。在存储过程中使用
return 时,return 语句可以指定返回给调用存储过程、应用程序以及批处理的整数值。 return 语句的语法规则如下:
return [ integer_expression ]
其中参数 integer_expression 为返回的整形值。在存储过程上,可以给调用应用程序或者调用存储过程返回整数值。如果没有
指定 return 语句的返回值,则返回 0 。 (return 不能返回 空值)
简单举例:
create procedure pro_person @personID int,
@quantity int output
as
declare @errersave int
set @errersave=0
-- 执行 Select 语句
select * from employees
where 人员编号=@personID
-- 保存任何非0的@@error值
if ( @@error<>0 )
set @errersave=@@error
set @errersave=@@error
-- 如果所有的 Select 语句执行正确,则返回 0 ,否则就返回当前错误代码
return @errersave
go
创建带参数的存储过程
简单举例:
create procedure proc
@studentid int,
as
select * from 学生信息表
where 学生编号=@studentid
go
在存储过程中使用事务
简单举例:
use db_Sql -- 使用 db_Sql 数据库
go
-- 判断 pro_pro 存储过程是否存在,如果存在将它删除
if exists(select name from sysobjects where name=' pro_pro ' and type=' p ' )
drop proc pro_pro -- 删除存储过程
go
create procedure pro_pro
as
declare @truc int
select @truc=@@trancount
if @truc=0
begin tran p1
else
save tran p1
if(@truc=2)
begin
rollback tran p1 -- 事务回滚
return 25
end
if (@t