码迷,mamicode.com
首页 > 数据库 > 详细

SQL数据库——存储过程

时间:2015-01-13 22:52:20      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

SQL数据库——存储过程

语法格式:

use 数据库名 在存储过程第一行就要首先声明所在数据库
go
create(alter) proc 存储过程名
形参
(@…),

as
begin

执行体
(return)
end
go

注意:建立一个存储过程后,修改的话应该把create 改为alter。

执行体内的语法:

1.定义变量:declare 变量名(@…) 数据类型

2.赋值语法:set/select 变量名=表达式

3.if语句格式:

if…
begin

end
else
begin

end

4.select语句中,top后面必须是一个值不能是一个表达式

例题1

--输入表名读取数据表
ALTER PROCEDURE [dbo].[date_select]
@tablename varchar(50)
    
AS
BEGIN
    exec(select * from +@tablename)
return    
    
END
例题2
--做一个通用的分页存储过程。要求输入:表名,主键,每页多少条,第几页。返回要查询的指定页面的数据。
alter PROCEDURE SELECT_PAGE
@Tablename varchar(50),--表名
@Tablekey varchar(50),--表的主键
@Pagesize int,--页面数据行数
@Pageno int--第几页

AS
BEGIN

declare @str varchar(255)
--写出表达式
--set @str=select top @pagesize * from @table where @tablekey not in (select top (@pagesize*@pageno-1) @tablekey from @tablename) 
--将表达式转成字符串
set @str =select top +cast( @Pagesize as varchar(50))+* from +@Tablename+  where  +@Tablekey +
           not in (select top +cast( (@Pagesize *(@Pageno-1)) as varchar(50))+ +@tablekey+ from +@tablename +) 
   
--执行字符串          
exec (@str)

技术分享

SQL数据库——存储过程

标签:

原文地址:http://www.cnblogs.com/wllhq/p/4222686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!