SQL Server的存储过程写法以及使用跟Mysql的类似,但又有区别。
SQL Server 语法:
1、构造无参的存储过程,则不能添加括号(),如下所示:
--删除是否已存在的存储过程 if(object_id('proc_table_data','p')is not null) drop proc proc_table_data go --创建不带参数的存储过程,不带参数的连括号都不需要加,区别Mysql的存储过程 create proc proc_table_data as select * from td_article --执行存储过程 exec proc_table_data
2、构造有参的存储过程,如下所示:
--删除是否已存在的存储过程 if(object_id('proc_td_article_getdatabyid','p')is not null) drop proc proc_td_article_getdatabyid go --创建存储过程(带参数),传入文章ID create proc proc_td_article_getdatabyid(@articleid varchar(20)) as select * from TD_Article where 1 = 1 and ArticleID = @articleid --执行存储过程 exec proc_td_article_getdatabyid '000000000000000006'
3、SQL Server分页存储过程,如下所示:
--删除是否已存在的存储过程 if (object_id('proc_td_article_pagedata', 'P') is not null) drop proc proc_td_article_pagedata go --创建存储过程(带参数),传入页码数,每页条数 create proc proc_td_article_pagedata(@indexpage int, @pagesize int) as declare @startRow int, @endRow int; set @startRow = @pagesize * (@indexpage - 1) + 1; set @endRow = @pagesize * @indexpage; select * from ( select *,row_number() over (order by ArticleID ASC) as RN from TD_Article ) t where 1 = 1 and t.RN between @startRow and @endRow --执行存储过程 exec proc_td_article_pagedata 2,5;