存储过程是什么?

Procedure就是存储在数据库的一组为了完成特定操作的sql语句集合,它可以传入参数,进行操作。简单的说,就是存在数据库的sql语句,我们可以自由调用,即可完成sql功能。

_ueditor_page_break_tag_

有什么优点?

速度快,省流量。由于procedure是一次预编译的,执行一次供以后多次调用,速度快。

灵活。一些查询条件的变更,不需修改程序代码,改变参数和返回值除外。

还是有缺点的

如果项目庞大,存储过程很多,客户需求一直变化,修改起来麻烦。还有就是后期维护的话,也比较繁琐。

创建procedure:

CREATEPROCEDURE [dbo].[ChangeStatus](

    @BsiStatus char(1)

)

As

Begin

    --sql语句

End

修改procedure

ALTERPROCEDURE [dbo].[ChangeStatus](

    @BsiStatus char(1)

)

As

Begin

--sql语句

End

删除procedure

drop procproc_get_student

 

定义参数:declare@Result char(1)

 

表连接修改:

updatea

seta.beforeIntent=b.Intent

frominf_business as a

innerjoin inf_business as b

onb.BusinessCode=a.beforebsicode

wherea.businesscode <> a.rootBsiCode

 

注意点:

If语句要加begin end

 

基础知识:

1.两个时间的天数差

datediff(day,getdate(),CrtEnd)<7

2.日期加一天

dateadd(day,1,CrtEnd)>getdate()

3.case when的使用

casewhen bsistatus='0' then 1 else 0 end

4. 判断字符串’345’中是否存在’3’

charindex(‘3’,'345')>0

5.获取当前时间的月份

Month(getdate())

 

技巧:

1.sql传参数条件

@typeint

whereenabled=1  

and (@type!=1 or 1=1)

and (@type!=2 or bsistatus='0')

 

 

 


最后修改:2014 年 07 月 08 日
如果觉得我的文章对你有用,请随意赞赏