SQL Server存储过程编写

发表于:2015-2-09 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:农村的我    来源:51Testing软件测试网采编

分享:
  1、 创建语法
  create proc | procedure pro_name
  [{@参数数据类型} [=默认值] [output],
  {@参数数据类型} [=默认值] [output],
  ....
  ]
  as
  SQL_statements
  2、 创建不带参数存储过程
  --创建存储过程
  if (exists (select * from sys.objects where name = 'proc_get_student'))
  drop proc proc_get_student
  go
  create proc proc_get_student
  as
  select * from student;
  --调用、执行存储过程
  exec proc_get_student;
  3、 修改存储过程
  --修改存储过程
  alter proc proc_get_student
  as
  select * from student;
  4、 带参存储过程
  --带参存储过程
  if (object_id('proc_find_stu', 'P') is not null)
  drop proc proc_find_stu
  go
  create proc proc_find_stu(@startId int, @endId int)
  as
  select * from student where id between @startId and @endId
  go
  exec proc_find_stu 2, 4;
  5、 带通配符参数存储过程
  --带通配符参数存储过程
  if (object_id('proc_findStudentByName', 'P') is not null)
  drop proc proc_findStudentByName
  go
  create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20) = '%')
  as
  select * from student where name like @name and name like @nextName;
  go
  exec proc_findStudentByName;
  exec proc_findStudentByName '%o%', 't%';
  6、 带输出参数存储过程
  if (object_id('proc_getStudentRecord', 'P') is not null)
  drop proc proc_getStudentRecord
  go
  create proc proc_getStudentRecord(
  @id int, --默认输入参数
  @name varchar(20) out, --输出参数
  @age varchar(20) output--输入输出参数
  )
  as
  select @name = name, @age = age  from student where id = @id and sex = @age;
  go
  --
  declare @id int,
  @name varchar(20),
  @temp varchar(20);
  set @id = 7;
  set @temp = 1;
  exec proc_getStudentRecord @id, @name out, @temp output;
  select @name, @temp;
  print @name + '#' + @temp;
  7、 不缓存存储过程
  --WITH RECOMPILE 不缓存
  if (object_id('proc_temp', 'P') is not null)
  drop proc proc_temp
  go
  create proc proc_temp
  with recompile
  as
  select * from student;
  go
  exec proc_temp;
  8、 加密存储过程
  --加密WITH ENCRYPTION
  if (object_id('proc_temp_encryption', 'P') is not null)
  drop proc proc_temp_encryption
  go
  create proc proc_temp_encryption
  with encryption
  as
  select * from student;
  go
  exec proc_temp_encryption;
  exec sp_helptext 'proc_temp';
  exec sp_helptext 'proc_temp_encryption';
32/3<123>
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号