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)
时间: 2024-10-19 00:48:09