存储过程入门

http://topic.csdn.net/u/20081025/09/1eaff677-7cb2-4a26-9c6d-cd9202932f06.html

1.写第一个存储过程
    create proc query_table
    as 
    select * from mytable
    GO

2.在查询分析器里执行存储过程

    exec query_book

3.写个带参数的存储过程

  CREATE PROCEDURE [dbo].[query_param]
(
 @ID int
)
 AS
 select * from a
GO
执行方法

exec query_param @ID=1

 

4.带多个参数的执行

exec query_param @ID=1,@name=2

 

5.存储过程中begin/end的用法

CREATE proc query_table
 as
begin
 select * from a --存储过程中begin/end的用法
 select * from b --返回不至一个表。
end
GO

 

6output/input

CREATE proc query_table
@dd int output
       as
begin
       select @dd=count(*) from a
end
GO
 存储过程除了返回查询结果以外可以返回一些值,这些值就是由这些标示为output的参数传递出去的。
 默认的都是input类型,output型可以通过C#代码语句取得。


7.在查询分析器里得到输出参数。
 declare @a int
 exec query_table @a out --在这里把输出参数赋给a,然后查询出来。
 select @a

 

3.常用语法
rtrim(@ygdm)--去除空格
if(rtrim(@bmdm)='')
 begin
  set @bmdm=(select min(bmdm) from p_bmdm)
 end
else
 begin
 end

4.参数赋值的方法是set
CREATE proc query_table
@dd int output,
@aa int output
       as
begin
 set @aa=27
       select @dd=count(*) from a
end
GO
执行
declare @a int,@b int
exec query_table @a out,@b out
select @a,@b

3.常用语法
rtrim(@ygdm)--去除空格
@num=len(1111)--返回值为4
set @aa=left('27222222',3)--从左取前三个字符
space(10)空格
case v when 0 then aa=0 else aa=1
convert(decimal(5,2),0.00)

4.常用方式
CREATE proc insert_table
       as
begin
insert into a (s1) (select s2 from b)
end
GO

insert into ls_bmcx (bmdm,zs,rybz,bmmc,ygdm)(select a.*,b.bmmc,@ygdm as ygdm from #lsb01 a inner join p_bmdm b on a.bmdm=b.bmdm)

5.连接查询用法
inner join
left join
  
6.#临时表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值