首页 理论教育 实例:PHP与SQLServer数据库存储过程开发

实例:PHP与SQLServer数据库存储过程开发

时间:2023-11-02 理论教育 版权反馈
【摘要】:空:表示该结点为顶层结点fjdid结点n非空:表示该结点的父亲结点号dwmc例2:下面给出的是一个实现动态查询订单数据的存储过程实例USE NORTHWINDGOCREATEPROCEDUREmyProc@MORDERID CHARASSELECTORDERS.ORDERID,ORDERDATE,PRODUCTID,QUANTITY,UNITPRICEFROM ORDERSINNER JOINS ORDER DETAILSON ORDERS.ORDERID=[ORDER DETAILS].ORDERTDWHERE ORDERS.ORDERID=@MORDERIDGO

实例:PHP与SQLServer数据库存储过程开发

1.基本语法

利用SQL的语言可以编写对于数据库访问的存储过程,其语法如下:

CREATE PROC[EDURE]procedure_name[;number]

{@parameter data_type}][VARYING][=default][OUTPUT]

[,...n]

[WITH

{

RECOMPILE

|ENCRYPTION

|RECOMPILE,ENCRYPTION

}

[FOR REPLICATION]

AS

sql_statement[...n]

[]内的内容是可选项,而()内的内容是必选项,

例1:若用户想建立一个删除表tmp中的记录的存储过程Select_delete可写为:

Create Proc select_del As

Delete tmp

例2:用户想查询tmp表中某年的数据的存储过程

create proc select_query@year int as

select*from tmp where year=@year

在这里@year是存储过程的参数

2.存储过程实例

例1:

CREATE proc search_dwmc

@dwidoldint,

@dwmcresult varchar(100)output

as

declare@stopint

declare@result varchar(80)

declare@dwmc varchar(80)

declare@dwidint

set nocounton

set@stop=1(www.xing528.com)

set@dwmc=""

select@dwmc=dwmc,@dwid=convert(int,fjdid)from jtdw where id=@dwidold

set@result=rtrim(@dwmc)

if@dwid=0

set@stop=0

while(@stop=1)and(@dwid<>0)

begin

set@dwidold=@dwid

select@dwmc=dwmc,@dwid=convert(int,fjdid)from jtdw where id=@dwidold

if@@rowcount=0

set@dwmc=""

else

set@result=@dwmc+@result

if(@dwid=0)or(@@rowcount=0)

set@stop=0

else

continue

end

set@dwmcresult=rtrim(@result)

该存储过程是从某结点n开始找到最上层的父亲结点,这种经常用到的过程可以由存储过程来担当,在网页中重复使用达到共享。

空:表示该结点为顶层结点

fjdid(父结点编号)

结点n非空:表示该结点的父亲结点号

dwmc(单位名称)

例2:下面给出的是一个实现动态查询订单数据的存储过程实例

USE NORTHWIND

GO

CREATE PROCEDURE myProc@MORDERID CHAR(5)

AS

SELECT ORDERS. ORDERID,ORDERDATE,PRODUCTID,QUANTITY,UNITPRICE

FROM ORDERS

INNER JOINS ORDER DETAILS

ON ORDERS.ORDERID=[ORDER DETAILS].ORDERTD

WHERE ORDERS.ORDERID=@MORDERID

GO

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈