职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1056|回复: 3

怎么样写个select通用的存储过程

[复制链接]
cls10000 发表于 2009-8-26 09:29 | 显示全部楼层 |阅读模式
要求参数和条件都要传入
问题补充:
select 字段 from 表明--这不变的 但where条件后面要传条件
还要参数
有int的
有string的
彬仔 发表于 2009-8-26 09:30 | 显示全部楼层

怎么样写个select通用的存储过程

CREATE PROCEDURE [dbo].[--存储过程名--]
( @PageSize AS integer,--分页
每页显示几条记录
@PageNum AS integer,--分页
显示第几页信息
@Keyword AS varchar(100),--搜索
关键字
@Type AS integer--类型)
AS
BEGIN
BEGIN TRAN
DECLARE @SQLStr AS varchar(4000)
DECLARE @strTemp AS varchar(300)
SET @strTemp=''
IF (@Keyword !='' )
BEGIN
SET @strTemp =@strTemp + 'AND (字段1 LIKE ''%' + @KeyWord + '%'' )'
END
IF(@Type!=99)
BEGIN
SET @strTemp =@strTemp + ' AND (Type = '+ cast(@Type AS varchar) +')'
END
SET @SQLStr='SELECT TOP '+cast(@PageSize AS varchar)+'

字段1,
字段2,
字段3,
...,
RecTotal=(SELECT count(Adminid) FROM Admin WHERE (Status>0)'+@strTemp +')--一共有多少条记录
FROM Admin WITH (NOLOCK)
WHERE'+@strTemp +' AND id NOT IN (SELECT TOP '+cast(@PageSize*(@PageNum) AS varchar)+' id FROM 表 WHERE (Status>0) '+@strTemp +'ORDER BY id)
ORDER BY id'

EXEC(@SQLStr)
IF (@@error!=0)
BEGIN
RAISERROR 20000 ' '
ROLLBACK TRAN
RETURN (1)
END
COMMIT TRAN
END
树仔 发表于 2009-8-26 09:30 | 显示全部楼层

怎么样写个select通用的存储过程

如果只是简单select的话,还是直接用select,勿需用存储过程
大圣 发表于 2009-8-26 09:30 | 显示全部楼层

怎么样写个select通用的存储过程

用绑定变量
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-28 03:31 , Processed in 0.127021 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表